テーブルの監査証跡を作成しようとしています。主キー。既に複合外部キーの一部であるEFプロパティに2番目の外部キーを追加する方法
ここに私がしたいことの単純化された例があります。
エンティティのための私のコードは次のよう現在されています。最終的に私は、添付GiftIdeaを経由することなく、AuditGiftIdeaオブジェクトから人を参照できるようにしたい
public class Person
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
public DateTime DateOfBirth { get; set; }
}
public class GiftIdea
{
[Key, Column(Order:0), ForeignKey("Person")]
public int PersonID { get; set; }
[Key, Column(Order:1)]
public DateTime RecordDate { get; set; }
public string Description { get; set; }
public string Occasion { get; set; }
//Linked Entities
public virtual Person Person { get; set; }
}
public class AuditGiftIdea
{
[Key, Column(Order:0), ForeignKey("GiftIdea")]
public int PersonID { get; set; }
[Key, Column(Order:1), ForeignKey("GiftIdea")]
public DateTime RecordDate { get; set; }
[Key, Column(Order:2)]
public DateTime AuditRecordDate { get; set; }
public string Description { get; set; }
public string Occasion { get; set; }
//Linked Entities
public virtual GiftIdea GiftIdea { get; set; }
}
。
だから私はこの試みた:
public class AuditGiftIdeas
{
[Key, Column(Order:0), ForeignKey("GiftIdea"), ForeignKey("Person")] //Extra Foreign Key
public int PersonID { get; set; }
[Key, Column(Order:1), ForeignKey("GiftIdea")]
public DateTime RecordDate { get; set; }
[Key, Column(Order:2)]
public DateTime AuditRecordDate { get; set; }
public string Description { get; set; }
public string Occasion { get; set; }
//Linked Entities
public virtual GiftIdea GiftIdea { get; set; }
public virtual Person Person { get; set; } //Access to desired object
}
をしかし、私は、「複製 『のForeignKey』属性」のコンパイル時にエラーが発生します。
どうすればこの設定を行うことができますか?
FK(「GiftIdea」)を保持し、Gift IdeaテーブルがFK to Personを強制するのはなぜですか? – Vlad274
@ Vlad274私は主にAuditGiftIdea(AuditGiftIdea.GiftIdea.PersonではなくAuditGiftIdea.Person) – hobwell