EF 4.1およびFluent APIを使用して、従来のデータベースからデータを取得しています(データベースを変更できません)。関連する列がプライマリキーと外部キーではない2つのテーブル間の関係を作成する際に問題が発生しています。Entity Framework 4.1のFluent APIとの非主キーフィールドの関連付けの作成
以下のクラスでは、Report.RunStatsがReportCodeフィールドが等しいすべてのRunStatエンティティを返すように、ReportとRunStatの1対多の関係をどのように設定しますか。
public class Report
{
[Key]
public int ReportKey { get; set; }
public string Name { get; set; }
public int ReportCode { get; set; } // Can we associate on this field
public virtual ICollection<RunStat> RunStats { get; set; }
}
public class RunStat
{
[Key]
public int RunStatKey { get; set; }
public int ReportCode { get; set; }
public DateTime RunDate { get; set; }
}
基本的に私はReport.ReportCodeがForeignKeyのですRunStat.ReportCodeが主キーであることを考えるようにEFを設定するには、流暢APIを使用します。
これをEntity Frameworkの新機能として追加することに投票してください。http://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/1050579-unique-constraint-ie-candidate-key-サポート – Brian