我有以下型号
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; }
}
当我尝试添加新迁移时,我收到以下错误
属性' CompanyId'上的ForeignKeyAttribute在类型上 ' ReportsEngine.Areas.Test.Models.User'无效。导航 财产' Comapny'在依赖类型上找不到 ' ReportsEngine.Areas.Test.Models.User&#39 ;. Name值应为a 有效的导航属性名称。
我在这里做错了什么?
答案 0 :(得分:1)
它只是一个错字,公司而不是Comapany
[ForeignKey("Company")]
public int CompanyId { get; set; }
答案 1 :(得分:1)
[ForeignKey("Comapny")]
表示用于Company
表的外键的属性应为Comapny
。
错误是因为您尚未在Comapny
表上定义Company
属性。
将以下内容添加到Company
表中:
public int Comapny { get; set; }
显然,最好在Id
前加上它,以表明它是那种类型的字段。
或者您可以省略[ForeignKey]
属性,让实体框架代码首先为您添加一个。