gpt4 book ai didi

c# - Linq Group 通过不采用内部实体

转载 作者:太空狗 更新时间:2023-10-29 21:56:55 24 4
gpt4 key购买 nike

我正在使用 Entity Framework 并通过表格进行分组。我的查询如下:-

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();

我已经包含了 PaymentDetail,但是在分组之后,我可以看到 BrokerPayments 中每个项目的 paymentdetail 都是空的。关于为什么会出现这种情况的任何建议,以及我如何进行分组,以便我可以在每个 BrokerPayment 中插入我的付款详细信息;

最佳答案

使用 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
});

注意:注意查询不会延迟执行

关于c# - Linq Group 通过不采用内部实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35379916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com