当我使用以下代码时,使用主键和外键关系成功生成了表。
[Table("tblDepartments")]
public class DepartmentModel
{
[Key]
public int DepartmentID { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public ICollection<EmployeeModel> Employees { get; set; }
}
[Table("tblEmployees")]
public class EmployeeModel
{
[Key]
public int EmployeeID { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public string City { get; set; }
public virtual DepartmentModel DID { get; set; }
}
但是当我使用下面的代码时,我得到了错误:
[Table("tblDepartments")]
public class DepartmentModel
{
[Key]
public int DepartmentID { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public ICollection<EmployeeModel> Employees { get; set; }
}
[Table("tblEmployees")]
public class EmployeeModel
{
[Key]
public int EmployeeID { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public string City { get; set; }
[ForeignKey("DeptID")]
public virtual DepartmentModel DID { get; set; }
}
错误:
The ForeignKeyAttribute on property 'DID' on type 'MvcApplication1.Models.EmployeeModel' is not valid. The foreign key name 'DeptID' was not found on the dependent type 'MvcApplication1.Models.EmployeeModel'. The Name value should be a comma separated list of foreign key property names.
请帮助。提前致谢。
最佳答案
问题出在您的 EmployeeModel 上,因为按照 Gert 的建议,您的表中缺少 departmentid 字段。你可以使用下面的 EmployeeModel
[Table("tblEmployees")]
public class EmployeeModel
{
[Key]
public int EmployeeID { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public string City { get; set; }
public int DeptID { get; set; } //<-- You forgot to add this
[ForeignKey("DeptID")]
public virtual DepartmentModel DID { get; set; }
}
关于c# - Entity Framework Code First 中的外键名称错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31160110/