を追加し、私は(多くの中で、これらは私に問題を与える)は、次の2つのエンティティを持ってEF 4.1コードまず外部キーは、余分な列
public class StartPoint
{
public int StartPointId { get; set; }
public string Description { get; set; }
public int StartPointNumber { get; set; }
public int StartAreaId { get; set; }
public StartArea StartArea { get; set; }
}
と
public class StartArea
{
public int StartAreaId { get; set; }
public string Description { get; set; }
public ICollection<StartPoint> StartPoints { get; set; }
}
EFは私を作成することができた場合データベースでは、複数のパスのためにカスケード削除をオフにする必要があると不平を言いました。データベースは、私は2つの外部キーを取得するに作成され
modelBuilder.Entity<StartPoint>()
.HasRequired(x => x.StartArea)
.WithMany()
.HasForeignKey(x => x.StartAreaId)
.WillCascadeOnDelete(false);
問題があるが、一つは、私が期待するよう、StartAreaId呼ばれ、他方はStartArea_StartAreaIdです。 StartAreaIdのみが使用されています。なぜ、どうすればStartArea_StartAreaIdを取り除くことができますか?コンテキストでHasForeignKeyを削除し、StartAreaIdをエンティティから削除すると、StartArea_StartAreaIdおよびStartArea_StartAreaId1のように、複数のStartArea_StartAreaId列が取得されます。これが起こるのを止めるために私は何をする必要がありますか?私はStartAreaIdを私の外部キーとして欲しいだけです。
うん、もちろん、知りません。ありがとうございました。 – Dirk
ありがとうLadislav!これを含むあなたの多くの答えによって恩恵を受けました。私の同僚はWithManyで何かを提供することを余儀なくされていませんでしたが、私はEFでMVPを取得する必要がありました:) –