Files
Walleby/Wallet.Data/LockerContext.cs
T
2024-07-02 11:49:57 +01:00

49 lines
1.3 KiB
C#

using Microsoft.EntityFrameworkCore;
namespace Wallet.Data;
public class WalletContext(DbContextOptions<WalletContext> options) :
DbContext(options)
{
public DbSet<BlobEntry> Blobs { get; set; }
public DbSet<ItemEntry> Items { get; set; }
public DbSet<TagEntry> Tags { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ItemEntry>()
.HasKey(x => x.Id);
modelBuilder.Entity<ItemEntry>()
.Property(x => x.Id)
.ValueGeneratedOnAdd()
.HasDefaultValueSql("NEWID()");
modelBuilder.Entity<ItemEntry>()
.HasMany(x => x.Tags)
.WithOne()
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.Entity<ItemEntry>()
.HasMany(x => x.Blobs)
.WithOne()
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.Entity<ItemEntry>().
HasOne(i => i.Image)
.WithOne()
.HasForeignKey<ItemEntry>(i => i.ImageId)
.IsRequired(false)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<BlobEntry>()
.HasKey(x => x.Id);
modelBuilder.Entity<BlobEntry>()
.Property(x => x.Id)
.ValueGeneratedOnAdd()
.HasDefaultValueSql("NEWID()");
}
}