「MYEntityConfiguration」(MyEntity は構成しようとしているエンティティのタイプ) というクラスを作成し、Entity Framework にある EntityTypeConfiguration<> タイプから継承できます。
例えば....
public class Position
{
public int Id { get; set; }
public string CompanyName { get; set; }
public bool IsCurrentRole { get; set; }
public string Summary { get; set; }
public string Title { get; set; }
public int? StartMonth { get; set; }
public int? StartYear { get; set; }
public int? EndMonth { get; set; }
public int? EndYear { get; set; }
public virtual User User { get; set; }
public int UserId { get; set; }
}
および対応する構成ファイル....
public class PositionConfiguration : EntityTypeConfiguration<Position>
{
public PositionConfiguration()
{
this.ToTable("Positions");
this.HasKey(p => p.Id);
this.Property(p => p.Id).HasColumnName("PositionId").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
this.Property(p => p.CompanyName).HasColumnName("CompanyName");
this.Property(p => p.EndMonth).IsOptional().HasColumnName("EndMonth");
this.Property(p => p.EndYear).IsOptional().HasColumnName("EndYear");
this.Property(p => p.IsCurrentRole).IsOptional().HasColumnName("IsCurrentRole");
this.Property(p => p.StartMonth).IsOptional().HasColumnName("StartMonth");
this.Property(p => p.StartYear).IsOptional().HasColumnName("StartYear");
this.Property(p => p.Summary).HasColumnName("Summary");
this.Property(p => p.Title).HasColumnName("Title");
}
}
次に、DBContext で... OnModelCreating...
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new PositionConfiguration());
base.OnModelCreating(modelBuilder);
}
これにより、構成が適切に保持されます...これが最良の方法であることがわかりました。