44 lines
1.3 KiB
C#
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);
|
|
}
|
|
} |