using Microsoft.EntityFrameworkCore; namespace Wallet.Data; public interface IConnection; public class WalletContext(IConnection connection) : DbContext { public DbSet Blobs { get; set; } public DbSet Items { get; set; } public DbSet Tags { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite($"{connection}"); } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity() .HasKey(x => x.Id); modelBuilder.Entity() .HasMany(x => x.Tags) .WithOne() .OnDelete(DeleteBehavior.Cascade); modelBuilder.Entity() .HasMany(x => x.Blobs) .WithOne() .OnDelete(DeleteBehavior.Cascade); modelBuilder.Entity(). HasOne(i => i.Image) .WithOne() .HasForeignKey(i => i.ImageId) .IsRequired(false) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity() .HasKey(x => x.Id); } }