70 lines
3.6 KiB
C#
70 lines
3.6 KiB
C#
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.Data.Entity.ModelConfiguration;
|
|
|
|
namespace IntegrationTests.Models.Mapping
|
|
{
|
|
public class ScenarioMap : EntityTypeConfiguration<Scenario>
|
|
{
|
|
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);
|
|
|
|
}
|
|
}
|
|
}
|