具有多个引用的实体框架 LoadProperty

Posted

技术标签:

【中文标题】具有多个引用的实体框架 LoadProperty【英文标题】:Entity Framework LoadProperty with multiple references 【发布时间】:2011-05-15 21:43:14 【问题描述】:

使用实体框架,您可以执行类似的操作来通过查询加载对象以供多个引用。

var Customer = context.Customers.Include(x=>x.Orders.Select(y=>y.Items));

似乎我不能用 LoadProperty 方法做同样的事情。当我已经有一个对象并且我需要加载一些参考数据时,我使用 LoadProperty。

context.LoadProperty(Customer, x=>x.Orders);

这行得通。但这会引发错误..

context.LoadProperty(Customer, x=>x.Orders.Select(y=>y.Items));

这也是...

context.LoadProperty(Customer.Orders, x=>x.Items);

这两种情况都是例外...

选择器表达式 LoadProperty 必须是 MemberAccess 为财产。

【问题讨论】:

【参考方案1】:

不,LoadProperty 不允许这样做。您可以尝试使用another question中描述的方法。

【讨论】:

【参考方案2】:

我遇到了同样的问题,最终循环遍历实体并一一加载:

EFContext.LoadProperty(primingRunSelector, f => f.PrimingRun);
EFContext.LoadProperty(primingRunSelector.PrimingRun, f => f.PrimingFillbagAssignedTos);
foreach (var primingFillbagAssignedTo in primingRunSelector.PrimingRun.PrimingFillbagAssignedTos) EFContext.LoadProperty(primingFillbagAssignedTo, f => f.PrimingFillbag);

【讨论】:

以上是关于具有多个引用的实体框架 LoadProperty的主要内容,如果未能解决你的问题,请参考以下文章

实体框架 - 将表拆分为具有重叠条件的多个实体

具有实体框架的具有多个线程的单一上下文

引用具有多个共同父项的子实体

实体框架 - 具有多个条件的异步选择

具有多个 MySql 模式的实体框架多个 DbContext

具有多个连接条件的实体框架查询