using System; using System.Collections.Generic; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata; namespace Packt.Shared { public partial class NorthwindContext : DbContext { public NorthwindContext() { } public NorthwindContext(DbContextOptions options) : base(options) { } public virtual DbSet AlphabeticalListOfProducts { get; set; } = null!; public virtual DbSet Categories { get; set; } = null!; public virtual DbSet CategorySalesFor1997s { get; set; } = null!; public virtual DbSet CurrentProductLists { get; set; } = null!; public virtual DbSet Customers { get; set; } = null!; public virtual DbSet CustomerAndSuppliersByCities { get; set; } = null!; public virtual DbSet CustomerDemographics { get; set; } = null!; public virtual DbSet Employees { get; set; } = null!; public virtual DbSet Invoices { get; set; } = null!; public virtual DbSet Orders { get; set; } = null!; public virtual DbSet OrderDetails { get; set; } = null!; public virtual DbSet OrderDetailsExtendeds { get; set; } = null!; public virtual DbSet OrderSubtotals { get; set; } = null!; public virtual DbSet OrdersQries { get; set; } = null!; public virtual DbSet Products { get; set; } = null!; public virtual DbSet ProductSalesFor1997s { get; set; } = null!; public virtual DbSet ProductsAboveAveragePrices { get; set; } = null!; public virtual DbSet ProductsByCategories { get; set; } = null!; public virtual DbSet QuarterlyOrders { get; set; } = null!; public virtual DbSet Regions { get; set; } = null!; public virtual DbSet SalesByCategories { get; set; } = null!; public virtual DbSet SalesTotalsByAmounts { get; set; } = null!; public virtual DbSet Shippers { get; set; } = null!; public virtual DbSet SummaryOfSalesByQuarters { get; set; } = null!; public virtual DbSet SummaryOfSalesByYears { get; set; } = null!; public virtual DbSet Suppliers { get; set; } = null!; public virtual DbSet Territories { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { optionsBuilder.UseSqlServer("Data Source=.;Initial Catalog=Northwind;Integrated Security=true;Encrypt=false;"); } } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(entity => { entity.ToView("Alphabetical list of products"); }); modelBuilder.Entity(entity => { entity.ToView("Category Sales for 1997"); }); modelBuilder.Entity(entity => { entity.ToView("Current Product List"); entity.Property(e => e.ProductId).ValueGeneratedOnAdd(); }); modelBuilder.Entity(entity => { entity.Property(e => e.CustomerId).IsFixedLength(); entity.HasMany(d => d.CustomerTypes) .WithMany(p => p.Customers) .UsingEntity>( "CustomerCustomerDemo", l => l.HasOne().WithMany().HasForeignKey("CustomerTypeId").OnDelete(DeleteBehavior.ClientSetNull).HasConstraintName("FK_CustomerCustomerDemo"), r => r.HasOne().WithMany().HasForeignKey("CustomerId").OnDelete(DeleteBehavior.ClientSetNull).HasConstraintName("FK_CustomerCustomerDemo_Customers"), j => { j.HasKey("CustomerId", "CustomerTypeId").IsClustered(false); j.ToTable("CustomerCustomerDemo"); j.IndexerProperty("CustomerId").HasMaxLength(5).HasColumnName("CustomerID").IsFixedLength(); j.IndexerProperty("CustomerTypeId").HasMaxLength(10).HasColumnName("CustomerTypeID").IsFixedLength(); }); }); modelBuilder.Entity(entity => { entity.ToView("Customer and Suppliers by City"); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.CustomerTypeId) .IsClustered(false); entity.Property(e => e.CustomerTypeId).IsFixedLength(); }); modelBuilder.Entity(entity => { entity.HasOne(d => d.ReportsToNavigation) .WithMany(p => p.InverseReportsToNavigation) .HasForeignKey(d => d.ReportsTo) .HasConstraintName("FK_Employees_Employees"); entity.HasMany(d => d.Territories) .WithMany(p => p.Employees) .UsingEntity>( "EmployeeTerritory", l => l.HasOne().WithMany().HasForeignKey("TerritoryId").OnDelete(DeleteBehavior.ClientSetNull).HasConstraintName("FK_EmployeeTerritories_Territories"), r => r.HasOne().WithMany().HasForeignKey("EmployeeId").OnDelete(DeleteBehavior.ClientSetNull).HasConstraintName("FK_EmployeeTerritories_Employees"), j => { j.HasKey("EmployeeId", "TerritoryId").IsClustered(false); j.ToTable("EmployeeTerritories"); j.IndexerProperty("EmployeeId").HasColumnName("EmployeeID"); j.IndexerProperty("TerritoryId").HasMaxLength(20).HasColumnName("TerritoryID"); }); }); modelBuilder.Entity(entity => { entity.ToView("Invoices"); entity.Property(e => e.CustomerId).IsFixedLength(); }); modelBuilder.Entity(entity => { entity.Property(e => e.CustomerId).IsFixedLength(); entity.Property(e => e.Freight).HasDefaultValueSql("((0))"); entity.HasOne(d => d.Customer) .WithMany(p => p.Orders) .HasForeignKey(d => d.CustomerId) .HasConstraintName("FK_Orders_Customers"); entity.HasOne(d => d.Employee) .WithMany(p => p.Orders) .HasForeignKey(d => d.EmployeeId) .HasConstraintName("FK_Orders_Employees"); entity.HasOne(d => d.ShipViaNavigation) .WithMany(p => p.Orders) .HasForeignKey(d => d.ShipVia) .HasConstraintName("FK_Orders_Shippers"); }); modelBuilder.Entity(entity => { entity.HasKey(e => new { e.OrderId, e.ProductId }) .HasName("PK_Order_Details"); entity.Property(e => e.Quantity).HasDefaultValueSql("((1))"); entity.HasOne(d => d.Order) .WithMany(p => p.OrderDetails) .HasForeignKey(d => d.OrderId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_Order_Details_Orders"); entity.HasOne(d => d.Product) .WithMany(p => p.OrderDetails) .HasForeignKey(d => d.ProductId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_Order_Details_Products"); }); modelBuilder.Entity(entity => { entity.ToView("Order Details Extended"); }); modelBuilder.Entity(entity => { entity.ToView("Order Subtotals"); }); modelBuilder.Entity(entity => { entity.ToView("Orders Qry"); entity.Property(e => e.CustomerId).IsFixedLength(); }); modelBuilder.Entity(entity => { entity.Property(e => e.ReorderLevel).HasDefaultValueSql("((0))"); entity.Property(e => e.UnitPrice).HasDefaultValueSql("((0))"); entity.Property(e => e.UnitsInStock).HasDefaultValueSql("((0))"); entity.Property(e => e.UnitsOnOrder).HasDefaultValueSql("((0))"); entity.HasOne(d => d.Category) .WithMany(p => p.Products) .HasForeignKey(d => d.CategoryId) .HasConstraintName("FK_Products_Categories"); entity.HasOne(d => d.Supplier) .WithMany(p => p.Products) .HasForeignKey(d => d.SupplierId) .HasConstraintName("FK_Products_Suppliers"); }); modelBuilder.Entity(entity => { entity.ToView("Product Sales for 1997"); }); modelBuilder.Entity(entity => { entity.ToView("Products Above Average Price"); }); modelBuilder.Entity(entity => { entity.ToView("Products by Category"); }); modelBuilder.Entity(entity => { entity.ToView("Quarterly Orders"); entity.Property(e => e.CustomerId).IsFixedLength(); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.RegionId) .IsClustered(false); entity.Property(e => e.RegionId).ValueGeneratedNever(); entity.Property(e => e.RegionDescription).IsFixedLength(); }); modelBuilder.Entity(entity => { entity.ToView("Sales by Category"); }); modelBuilder.Entity(entity => { entity.ToView("Sales Totals by Amount"); }); modelBuilder.Entity(entity => { entity.ToView("Summary of Sales by Quarter"); }); modelBuilder.Entity(entity => { entity.ToView("Summary of Sales by Year"); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.TerritoryId) .IsClustered(false); entity.Property(e => e.TerritoryDescription).IsFixedLength(); entity.HasOne(d => d.Region) .WithMany(p => p.Territories) .HasForeignKey(d => d.RegionId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_Territories_Region"); }); OnModelCreatingPartial(modelBuilder); } partial void OnModelCreatingPartial(ModelBuilder modelBuilder); } }