我有(不能更改)EF DataBase第一个没有模型导航属性的项目。
我想扩展自动生成的模型并添加导航属性
//generated.cs
public partial class company
{
public int id { get; set; }
public string name { get; set; }
}
public partial class user
{
public int id { get; set; }
public int company_id { get; set; }
}
//model_extension.cs
public partial class user
{
public company Company { get; set; }
}
我有例外"指定的类型成员'公司' LINQ to Entities不支持。仅支持初始值设定项,实体成员和实体导航属性。"
我之前使用过CodeFirst。
我理解,我必须将user.company_id链接到公司 但不明白如何使用代码(而不是设计师)
答案 0 :(得分:1)
在数据库第一种方法中,您通过Entity Framework Designer/ADO.NET Entity Data Model
从数据库模式生成POCO对象,因此它不像Code-First那样灵活,您需要继续使用数据库,并自行更改模式并更新您的{{ 1}}文件。虽然可以在c#侧为这些模型添加属性,但它们不会被添加到数据库模式中,
我建议您反转您的数据库架构并采用代码优先方法,此nuget package可以为您执行此操作。
将所有关于Code-First的内容全部翻转后,创建自己的.edmx
和DbContext
并让迁移处理其余部分。然后,您可以使用Eager Loading of EF来加载数据,