Bir tablo için bir denetim izi oluşturmaya çalışıyorum. birincil anahtar.Bileşik bir yabancı anahtarın parçası olan bir EF özelliğine ikinci bir yabancı anahtar nasıl eklenir?
İşte yapmak istediklerimin basitleştirilmiş bir örneğidir.
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; }
}
Sonuçta ben ekli GiftIdea aracılığıyla gitmek zorunda kalmadan bir AuditGiftIdea nesneden bir Kişiyi başvuru yapabilmek istiyor şu şekildedir: varlıklar için
Kodum şu anda.
Yani bu çalıştı: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
}
Ama "Yinelenen 'ForeignKey' özelliği" bir derleme zamanı hatası alıyorum.
Bu kurulumu nasıl yapabilirim?
Neden FK ("GiftIdea") yi saklamıyorsunuz ve Hediyelik Fikirler tablosunun FK'yi Kişiye uygulayacağına güvenmiyorsunuz? – Vlad274
@ Vlad274 Ben öncelikle insana AuditGiftIdea (örneğin AuditGiftIdea.GiftIdea.Person yerine AuditGiftIdea.Person) üzerinden doğrudan erişebilmeyi düşünüyordum. – hobwell