c# - EF 5、.Net 4.5 加载多对一子对象时出现问题

标签 c# asp.net-mvc-3 entity-framework

我在 MySQL 中有一组表 - Customer 1-many Order 1-many OrderProduct many-1 Product。

我从数据库生成了一个 EF 模型,除此问题外,它运行良好。

如果我加载给定的客户,我会按预期获得他们的订单和订单产品。但是将 OrderProduct 匹配表连接到 Product 表的导航属性 (FK) 不会加载。

我实际上已经将生成的 SQL 复制到 MySQL 查询窗口中,并且确实从 Product 表中获取了连接数据。但是返回时数据显然没有映射到类中。

我已经尝试过任意数量的急切/延迟加载组合,包括现在的内容:

context.orders.Where(o => o.UserID == UserID && o.OrderDate == OrderDate.Value)
              .Include(o => o.orderproducts.Select(p => p.product))
              .First();

但无论我做什么,product 始终为 null。

有什么建议吗?

最佳答案

试试这个:

var order = context.orders.Include("orderproducts.product")
              .Where(o => o.UserID == UserID && o.OrderDate == OrderDate.Value)
              .First();

关于c# - EF 5、.Net 4.5 加载多对一子对象时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13320226/

相关文章:

c# - 使用 Entity Framework 保存对子集合的更改

c# - 使子类中的成员只读

asp.net-mvc-3 - MVC 3、单选按钮和模型

c# - 无法从 JSON 字符串构造对象

c# - 如何在 Asp.Net MVC Razor 中创建 'generic' 控件?

c# - 如何在 ASP MVC 中使用 JavaScript 禁用 EditorFor

c# - 在 Entity Framework 中处理一对多关系更新的简化方法?

c# - LINQ 和 SQL 中看似等效的查询返回不同的结果

c# - 指定的转换无效。(数据表中的整数值)

c# - DataGridView 在行更改时保存更改