using System; using System.Data.Entity; namespace AdvertisingProfitControlData { public class AdvertisingProfitControlModel : DbContext { private static string _connectionString = string.Empty; /// /// Initializes and stores the supplied connection string. This allows calls to /// an overloaded constructor to take no parameters. /// /// The connection string for the database. public AdvertisingProfitControlModel(string connectionString) : base(connectionString) { _connectionString = connectionString; } /// /// Creates the database context using a previously initialized connection string. /// public AdvertisingProfitControlModel() : base(ValidateConnectionString()) { } /// /// Checks to make sure a connection string has been initialized. /// /// private static string ValidateConnectionString() { if (_connectionString == string.Empty) { throw new OperationCanceledException("A connection string must be specified."); } return _connectionString; } public virtual DbSet ActualSales { get; set; } public virtual DbSet AdItems { get; set; } public virtual DbSet AdSpecials { get; set; } public virtual DbSet CostAnalysis { get; set; } public virtual DbSet Inventories { get; set; } public virtual DbSet Invoices { get; set; } public virtual DbSet Notes { get; set; } public virtual DbSet Projections { get; set; } public virtual DbSet Suppliers { get; set; } public virtual DbSet Taxables { get; set; } public virtual DbSet Versions { get; set; } public virtual DbSet WeekEndingDates { get; set; } public virtual DbSet WeeklySales { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity() .Property(e => e.Sold) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.SalePrice) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.TotalSales) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Cost) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.ProfitReturn) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.TotalProfitReturn) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Name) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.Description) .IsUnicode(false); modelBuilder.Entity() .HasMany(e => e.ActualSales) .WithRequired(e => e.AdItem) .HasForeignKey(e => e.FkAdItemId) .WillCascadeOnDelete(false); modelBuilder.Entity() .HasMany(e => e.Inventories) .WithRequired(e => e.AdItem) .HasForeignKey(e => e.FkAdItemId) .WillCascadeOnDelete(false); modelBuilder.Entity() .HasMany(e => e.Projections) .WithRequired(e => e.AdItem) .HasForeignKey(e => e.FkAdItemId) .WillCascadeOnDelete(false); modelBuilder.Entity() .Property(e => e.Name) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.Description) .IsUnicode(false); modelBuilder.Entity() .HasMany(e => e.ActualSales) .WithOptional(e => e.AdSpecial) .HasForeignKey(e => e.FkAdSpecialId); modelBuilder.Entity() .HasMany(e => e.Inventories) .WithOptional(e => e.AdSpecial) .HasForeignKey(e => e.FkAdSpecialId); modelBuilder.Entity() .HasMany(e => e.Projections) .WithOptional(e => e.AdSpecial) .HasForeignKey(e => e.FkAdSpecialId); modelBuilder.Entity() .Property(e => e.SalesPerManHour) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.SalaryPercentage) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.SalaryDollar) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Supplies) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.BeginningInventory) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.Recieved) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.TotalInventory) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.EndingInventory) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.InvoiceNumber) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.InvoiceNetAmountAtCost) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.InvoiceNetAmount) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.InvoiceNote) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.Remark) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.Sold) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.SalePrice) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.TotalSales) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Cost) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.ProfitReturn) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.TotalProfitReturn) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Name) .IsUnicode(false); modelBuilder.Entity() .Property(e => e.Description) .IsUnicode(false); modelBuilder.Entity() .HasMany(e => e.Invoices) .WithRequired(e => e.Supplier) .HasForeignKey(e => e.FkSupplierId) .WillCascadeOnDelete(false); modelBuilder.Entity() .Property(e => e.Sunday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Monday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Tuesday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Wednesday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Thursday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Friday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Saturday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Total) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.VersionNumber) .IsUnicode(false); modelBuilder.Entity() .HasMany(e => e.ActualSales) .WithRequired(e => e.WeekEndingDate) .HasForeignKey(e => e.FkDateId) .WillCascadeOnDelete(false); modelBuilder.Entity() .HasMany(e => e.CostAnalysis) .WithRequired(e => e.WeekEndingDate) .HasForeignKey(e => e.FkDateId) .WillCascadeOnDelete(false); modelBuilder.Entity() .HasMany(e => e.Inventories) .WithRequired(e => e.WeekEndingDate) .HasForeignKey(e => e.FkDateId) .WillCascadeOnDelete(false); modelBuilder.Entity() .HasMany(e => e.Invoices) .WithRequired(e => e.WeekEndingDate) .HasForeignKey(e => e.FkDateId) .WillCascadeOnDelete(false); modelBuilder.Entity() .HasMany(e => e.Notes) .WithRequired(e => e.WeekEndingDate) .HasForeignKey(e => e.FkDateId) .WillCascadeOnDelete(false); modelBuilder.Entity() .HasMany(e => e.Projections) .WithRequired(e => e.WeekEndingDate) .HasForeignKey(e => e.FkDateId) .WillCascadeOnDelete(false); modelBuilder.Entity() .HasMany(e => e.Taxables) .WithRequired(e => e.WeekEndingDate) .HasForeignKey(e => e.FkDateId) .WillCascadeOnDelete(false); modelBuilder.Entity() .HasMany(e => e.WeeklySales) .WithRequired(e => e.WeekEndingDate) .HasForeignKey(e => e.FkDateId) .WillCascadeOnDelete(false); modelBuilder.Entity() .Property(e => e.Sunday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Monday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Tuesday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Wednesday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Thursday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Friday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.Saturday) .HasPrecision(19, 2); modelBuilder.Entity() .Property(e => e.TotalSales) .HasPrecision(19, 2); } } }