Files
OneForMe/Data/ApplicationDbContext.cs

44 lines
1.3 KiB
C#

using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using OneForMe.Models;
namespace OneForMe.Data;
public class ApplicationDbContext : IdentityDbContext<IdentityUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}
public DbSet<Order> Orders { get; set; }
public DbSet<MenuItem> MenuItems { get; set; }
public DbSet<OrderItem> OrderItems { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Order>()
.HasIndex(o => o.OrderCode)
.IsUnique();
modelBuilder.Entity<MenuItem>()
.HasOne(m => m.Order)
.WithMany(o => o.MenuItems)
.HasForeignKey(m => m.OrderId)
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.Entity<OrderItem>()
.HasOne(oi => oi.Order)
.WithMany(o => o.OrderItems)
.HasForeignKey(oi => oi.OrderId)
.OnDelete(DeleteBehavior.Cascade);
modelBuilder.Entity<OrderItem>()
.HasOne(oi => oi.MenuItem)
.WithMany(m => m.OrderItems)
.HasForeignKey(oi => oi.MenuItemId)
.OnDelete(DeleteBehavior.Cascade);
}
}