林克集团 通过不采取内部实体
本文关键字:内部 实体 林克 | 更新日期: 2023-09-27 18:34:24
我正在使用实体框架并在表格上做一个组。我的查询如下:-
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();
我已经包含了付款详细信息,但是在分组后,我可以看到代理付款中每个项目的付款详细信息为空。任何建议为什么会这样,以及我如何通过这样做小组,这样我就可以我的付款详细信息坚持每个经纪人付款;
使用 Include
急切加载需要自应用Include
以来不更改数据的形状。在您的情况下,这意味着查询必须返回IQueryable<BrokerPayments>
。但是GroupBy
运算符会更改形状,因为它返回IQueryable<IGrouping<TKey, TSource>>
。投影和自定义联接也会发生同样的情况。
作为解决方法,您可以在 LINQ to Objects 中执行分组,如下所示:
var brokerPaymentLists = dbContext.BrokerPayments
.Include("PaymentDetail")
.Where(bp => bp.IdPaymentStatus == (long)EntityModel.Additions.Variables.PaymentStatus.ALLOTED)
.AsEnumerable()
.GroupBy(bp => bp.IdBroker,
(key, g) => new
{
IdBroker = key.Value,
BrokerPayments = g
});
注意:请注意,查询执行不会被推迟