use*_*579 6 c# linq entity-framework group-by
我正在使用实体框架并通过表格进行分组.我的查询如下: -
var brokerPaymentLists = dbContext.BrokerPayments
.Include("PaymentDetail")
.Where(bp => bp.IdPaymentStatus == (long)EntityModel.Additions.Variables.PaymentStatus.ALLOTED)
.GroupBy(bp => bp.IdBroker,
(key, g) => new
{
IdBroker = key.Value,
BrokerPayments = g.ToList()
}).ToList();
Run Code Online (Sandbox Code Playgroud)
我已经包含了PaymentDetail但在分组之后,我可以看到BrokerPayments中每个项目的paymentdetail为null.任何建议为什么会这样,我怎么能这样做,我可以我的paymentDetail insisde每个BrokerPayments;
使用急切加载要求数据的形状自应用Include
以来不发生改变。Include
在您的情况下,这意味着查询必须返回IQueryable<BrokerPayments>
. 但是GroupBy
操作符改变了形状,因为它返回了IQueryable<IGrouping<TKey,\xe2\x80\x82TSource>>
。投影和自定义连接也会发生同样的情况。
作为解决方法,您可以在 LINQ to Objects 中执行分组,例如:
\n\nvar brokerPaymentLists = dbContext.BrokerPayments\n .Include("PaymentDetail")\n .Where(bp => bp.IdPaymentStatus == (long)EntityModel.Additions.Variables.PaymentStatus.ALLOTED)\n .AsEnumerable()\n .GroupBy(bp => bp.IdBroker,\n (key, g) => new\n {\n IdBroker = key.Value,\n BrokerPayments = g\n });\n
Run Code Online (Sandbox Code Playgroud)\n\n注意:注意查询执行不会被延迟
\n 归档时间: |
|
查看次数: |
281 次 |
最近记录: |