using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity.ModelConfiguration; namespace IntegrationTests.Models.Mapping { public class ScenarioMap : EntityTypeConfiguration { public ScenarioMap() { // Primary Key this.HasKey(t => t.Id); // Properties this.Property(t => t.Name) .IsRequired() .HasMaxLength(200); this.Property(t => t.Color) .HasMaxLength(16); // Table & Column Mappings this.ToTable("Scenario"); this.Property(t => t.Id).HasColumnName("Id"); this.Property(t => t.ParentId).HasColumnName("ParentId"); this.Property(t => t.TemplateId).HasColumnName("TemplateId"); this.Property(t => t.Type).HasColumnName("Type"); this.Property(t => t.Name).HasColumnName("Name"); this.Property(t => t.ProjectedRevenue).HasColumnName("ProjectedRevenue"); this.Property(t => t.ExpectedGrossMargin).HasColumnName("ExpectedGrossMargin"); this.Property(t => t.CalculatedGrossMargin).HasColumnName("CalculatedGrossMargin"); this.Property(t => t.CGSplit).HasColumnName("CGSplit"); this.Property(t => t.EFXSplit).HasColumnName("EFXSplit"); this.Property(t => t.StartDate).HasColumnName("StartDate"); this.Property(t => t.EndDate).HasColumnName("EndDate"); this.Property(t => t.Duration).HasColumnName("Duration"); this.Property(t => t.TDDirectCosts).HasColumnName("TDDirectCosts"); this.Property(t => t.BUDirectCosts).HasColumnName("BUDirectCosts"); this.Property(t => t.Shots).HasColumnName("Shots"); this.Property(t => t.TDRevenueShot).HasColumnName("TDRevenueShot"); this.Property(t => t.BURevenueShot).HasColumnName("BURevenueShot"); this.Property(t => t.LastUpdate).HasColumnName("LastUpdate"); this.Property(t => t.Color).HasColumnName("Color"); this.Property(t => t.Status).HasColumnName("Status"); this.Property(t => t.UseLMMargin).HasColumnName("UseLMMargin"); this.Property(t => t.ExpectedGrossMargin_LM).HasColumnName("ExpectedGrossMargin_LM"); this.Property(t => t.CalculatedGrossMargin_LM).HasColumnName("CalculatedGrossMargin_LM"); this.Property(t => t.TDDirectCosts_LM).HasColumnName("TDDirectCosts_LM"); this.Property(t => t.BUDirectCosts_LM).HasColumnName("BUDirectCosts_LM"); this.Property(t => t.BURevenueShot_LM).HasColumnName("BURevenueShot_LM"); this.Property(t => t.ShotStartDate).HasColumnName("ShotStartDate"); this.Property(t => t.EntryTimeStamp).HasColumnName("EntryTimeStamp"); this.Property(t => t.Actuals_BUDirectCosts).HasColumnName("Actuals_BUDirectCosts"); this.Property(t => t.Actuals_BUDirectCosts_LM).HasColumnName("Actuals_BUDirectCosts_LM"); this.Property(t => t.SystemAttributeObjectID).HasColumnName("SystemAttributeObjectID"); this.Property(t => t.ProjectedExpense).HasColumnName("ProjectedExpense"); this.Property(t => t.FreezeRevenue).HasColumnName("FreezeRevenue"); this.Property(t => t.GrowthScenario).HasColumnName("GrowthScenario"); // Relationships this.HasOptional(t => t.Project) .WithMany(t => t.Scenarios) .HasForeignKey(d => d.ParentId); this.HasOptional(t => t.Scenario2) .WithMany(t => t.Scenario1) .HasForeignKey(d => d.TemplateId); } } }