簡體   English   中英

代碼優先方法中使用Entity Framework的ForeignKeyAttribute名稱無效

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM