![](/img/trans.png)
[英]Code First The ForeignKeyAttribute on property '' on type '' is not valid. Entity Framework
[英]Entity framework ForeignKeyAttribute on property … on type … is not valid
我收到此錯誤:
類型'HealthOfAustralia.DAL.Models.ContentArticleHOAsubdivision'上屬性'SubdivisionsHOA'的ForeignKeyAttribute無效。 在從屬類型“ HealthOfAustralia.DAL.Models.SubdivisionHOA”上找不到外鍵名稱“ SubdivisionHOAId”。 Name值應該是逗號分隔的外鍵屬性名稱列表。
這是模型類:
public partial class ContentArticleHOAsubdivision
{
public int Id { get; set; }
public long ContentArticleId { get; set; }
public short SubdivisionHOAId { get; set; }
[ForeignKey("ContentArticleId")]
public virtual ContentArticleHOA ContentArticleHOA { get; set; }
[ForeignKey("SubdivisionHOAId")]
public virtual ICollection<SubdivisionHOA> SubdivisionsHOA { get; set; }
}
public partial class SubdivisionHOA
{
[Key, ForeignKey("TopTierDivisionHOA")]
public short Id { get; set; }
public string Name { get; set; }
public virtual TopTierDivisionHOA TopTierDivisionHOA { get; set; }
}
我究竟做錯了什么?
您需要選擇one to many
關系並使用以下代碼:
public class ContentArticleHOAsubdivision
{
...Comment this
//public short SubdivisionHOAId { get; set; }
...
[InverseProperty(" create property for ContentArticleHOAsubdivision on SubdivisionHOA")]
public virtual ICollection<SubdivisionHOA> SubdivisionsHOA { get; set; }
}
或者one to one
與這一個:
[ForeignKey("SubdivisionHOA")]
public short SubdivisionHOAId { get; set; }
public virtual SubdivisionHOA SubdivisionsHOA { get; set; }
消息很清楚:您在SubdivisionHOA
類上將SubdivisionHOAId
指定為前例鍵屬性名稱,該名稱不存在。 您可能打算輸入Id
。
從文檔中 :
注釋可以放在外鍵屬性上並指定關聯的導航屬性名稱, 也可以放在導航屬性上並指定關聯的外鍵名稱。
並從Name屬性的描述中:
如果將ForeigKey屬性添加到導航屬性,則應指定關聯的外鍵的名稱 。 如果導航屬性具有多個外鍵,請使用逗號分隔外鍵名稱列表。
這是這里的第二種用法。 SubdivisionsHOA
被視為導航屬性,因此編譯器會在SubdivisionHOA
類上查找名為SubdivisionHOAId
的外鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.