using Bookstore.Domain.Addresses; using Bookstore.Domain.Books; using Bookstore.Domain.Carts; using Bookstore.Domain.Customers; using Bookstore.Domain.Offers; using Bookstore.Domain.Orders; using Bookstore.Domain.ReferenceData; using Microsoft.EntityFrameworkCore; namespace Bookstore.Data { public partial class ApplicationDbContext : DbContext { public ApplicationDbContext() { } public ApplicationDbContext(DbContextOptions options) : base(options) { } public DbSet
Address { get; set; } public DbSet Book { get; set; } public DbSet Customer { get; set; } public DbSet Order { get; set; } public DbSet ShoppingCart { get; set; } public DbSet ShoppingCartItem { get; set; } public DbSet OrderItem { get; set; } public DbSet Offer { get; set; } public DbSet ReferenceData { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().HasIndex(x => x.Sub).IsUnique(); modelBuilder.Entity().HasOne(x => x.Publisher).WithMany().HasForeignKey(x => x.PublisherId).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity().HasOne(x => x.BookType).WithMany().HasForeignKey(x => x.BookTypeId).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity().HasOne(x => x.Genre).WithMany().HasForeignKey(x => x.GenreId).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity().HasOne(x => x.Condition).WithMany().HasForeignKey(x => x.ConditionId).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity().HasOne(x => x.Publisher).WithMany().HasForeignKey(x => x.PublisherId).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity().HasOne(x => x.BookType).WithMany().HasForeignKey(x => x.BookTypeId).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity().HasOne(x => x.Genre).WithMany().HasForeignKey(x => x.GenreId).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity().HasOne(x => x.Condition).WithMany().HasForeignKey(x => x.ConditionId).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity().HasOne(x => x.Customer).WithMany().OnDelete(DeleteBehavior.Restrict); PopulateDatabase(modelBuilder); base.OnModelCreating(modelBuilder); } } }