EnVisageOnline/Main/Source/IntegrationTests/Models/Mapping/ExpenditureCategoryMap.cs

50 lines
2.0 KiB
C#

using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
namespace IntegrationTests.Models.Mapping
{
public class ExpenditureCategoryMap : EntityTypeConfiguration<ExpenditureCategory>
{
public ExpenditureCategoryMap()
{
// Primary Key
this.HasKey(t => t.Id);
// Properties
this.Property(t => t.CGEFX)
.IsFixedLength()
.HasMaxLength(10);
// Table & Column Mappings
this.ToTable("ExpenditureCategory");
this.Property(t => t.Id).HasColumnName("Id");
this.Property(t => t.ExpenditureId).HasColumnName("ExpenditureId");
this.Property(t => t.GLId).HasColumnName("GLId");
this.Property(t => t.UOMId).HasColumnName("UOMId");
this.Property(t => t.CreditId).HasColumnName("CreditId");
this.Property(t => t.Type).HasColumnName("Type");
this.Property(t => t.UseType).HasColumnName("UseType");
this.Property(t => t.CGEFX).HasColumnName("CGEFX");
this.Property(t => t.SortOrder).HasColumnName("SortOrder");
this.Property(t => t.WksSubjectToFee).HasColumnName("WksSubjectToFee");
this.Property(t => t.SystemAttributeOne).HasColumnName("SystemAttributeOne");
this.Property(t => t.SystemAttributeTwo).HasColumnName("SystemAttributeTwo");
// Relationships
this.HasRequired(t => t.CreditDepartment)
.WithMany(t => t.ExpenditureCategories)
.HasForeignKey(d => d.CreditId);
this.HasRequired(t => t.Expenditure)
.WithMany(t => t.ExpenditureCategories)
.HasForeignKey(d => d.ExpenditureId);
this.HasRequired(t => t.GLAccount)
.WithMany(t => t.ExpenditureCategories)
.HasForeignKey(d => d.GLId);
this.HasRequired(t => t.UOM)
.WithMany(t => t.ExpenditureCategories)
.HasForeignKey(d => d.UOMId);
}
}
}