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

44 lines
1.6 KiB
C#

using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
namespace IntegrationTests.Models.Mapping
{
public class PeopleResourceMap : EntityTypeConfiguration<PeopleResource>
{
public PeopleResourceMap()
{
// Primary Key
this.HasKey(t => t.Id);
// Properties
this.Property(t => t.FirstName)
.IsRequired()
.HasMaxLength(250);
this.Property(t => t.LastName)
.IsRequired()
.HasMaxLength(250);
// Table & Column Mappings
this.ToTable("PeopleResource");
this.Property(t => t.Id).HasColumnName("Id");
this.Property(t => t.FirstName).HasColumnName("FirstName");
this.Property(t => t.LastName).HasColumnName("LastName");
this.Property(t => t.IsActiveEmployee).HasColumnName("IsActiveEmployee");
this.Property(t => t.TeamId).HasColumnName("TeamId");
this.Property(t => t.ExpenditureCategoryId).HasColumnName("ExpenditureCategoryId");
this.Property(t => t.StartDate).HasColumnName("StartDate");
this.Property(t => t.EndDate).HasColumnName("EndDate");
// Relationships
this.HasRequired(t => t.ExpenditureCategory)
.WithMany(t => t.PeopleResources)
.HasForeignKey(d => d.ExpenditureCategoryId);
this.HasOptional(t => t.Team)
.WithMany(t => t.PeopleResources)
.HasForeignKey(d => d.TeamId);
}
}
}