![](/img/trans.png)
[英]Code First The ForeignKeyAttribute on property '' on type '' is not valid. Entity Framework
[英]Invalid ForeignKeyAttribute name with Entity Framework in code first approach
我有以下型號
public class Team
{
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
[ForeignKey("User")]
public int ManagerId { get; set; }
public virtual User User { get; set; }
}
這是我的User
類:
public class User
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
[ForeignKey("Comapny")]
public int CompanyId { get; set; }
public virtual Company Company { get; set; }
}
這是我的Company
課程:
public class Company
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
}
當我嘗試添加新遷移時,出現以下錯誤
類型'ReportsEngine.Areas.Test.Models.User'上屬性'CompanyId'的ForeignKeyAttribute無效。 在依賴類型“ ReportsEngine.Areas.Test.Models.User”上找不到導航屬性“ Comapny”。 Name值應為有效的導航屬性名稱。
我在這里做錯了什么?
它只是一個錯字,公司而不是Comapany
[ForeignKey("Company")]
public int CompanyId { get; set; }
[ForeignKey("Comapny")]
指示用於Company
表的外鍵的屬性應該為Comapny
。
該錯誤是因為您尚未在Company
表上定義Comapny
屬性。
將以下內容添加到Company
表:
public int Comapny { get; set; }
顯然,最好用Id
作為前綴,以表明它是該類型的字段。
或者,您可以省略[ForeignKey]
屬性,以使Entity Framework代碼首先為您添加一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.