最初に Entity Framework 4.3.1 コードを使用しています。データベースには、列名がリストされた 2 つのテーブルがあります。
ステータス表:
StatusID int
Status varchar(50)
RequestStatuses テーブル:
RequestStatusID int
RequestStatus varchar(50)
私は2つのクラスを持っています:
public class Status : IEntity
{
public int Id { get; set; }
public string Name { get; set; }
public RequestStatus RequestStatus { get; set; }
}
public class RequestStatus : IEntity
{
public int Id { get; set; }
public string Name { get; set; }
public Status Status { get; set; }
}
私のデータベースコンテキストクラス:
public class ICaseDbContext : DbContext
{
public DbSet<Status> Statuses { get; set; }
public DbSet<RequestStatus> RequestStatuses { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new StatusConfiguration());
modelBuilder.Configurations.Add(new RequestStatusConfiguration());
}
}
それらの構成:
class StatusConfiguration : EntityTypeConfiguration<Status>
{
internal StatusConfiguration()
{
this.ToTable("Statuses");
this.Property(x => x.Id).HasColumnName("StatusID");
this.Property(x => x.Name).HasColumnName("Status");
}
}
class RequestStatusConfiguration : EntityTypeConfiguration<RequestStatus>
{
internal RequestStatusConfiguration()
{
this.ToTable("RequestStatuses");
this.Property(x => x.Id).HasColumnName("RequestStatusID");
this.Property(x => x.Name).HasColumnName("RequestStatus");
}
}
各テーブルのデータは次のようになります。
RequestStatuses テーブル:
RequestStatusID RequestStatus
1 RequestStatus1
2 RequestStatus2
3 RequestStatus3
4 RequestStatus4
ステータス表:
StatusID Status
1 Status1
2 Status2
3 Status3
4 Status4
各テーブルの主キーは、他のテーブルの主キーと一致します。したがって、RequestStatus1 のリクエスト ステータスがある場合、対応するステータスは Status1 である必要があります。Status3 のステータスがある場合、対応するリクエスト ステータスは RequestStatus3 である必要があります。
これは可能ですか?
EFでこれを設定するにはどうすればよいですか