gpt4 book ai didi

c# - Linq 'first' 问题

转载 作者:行者123 更新时间:2023-11-30 18:01:43 24 4
gpt4 key购买 nike

我有以下内容,在我添加最后一部分之前效果很好:

var FbtTotals = from ff in ExpenseItemFbtItems
group ff by ff.ERLineID into g
select new {
lineId = g.Key, totalAttendees = g.Sum(
m => m.Num_Attendees_In_Group),
attendeeTypes = g.Count(),
purposeDesc = g.FirstOrDefault(n => n.User_Purpose_Description)
};

purposeDesc 失败,称这是一个未知错误。从功能上讲,我只想对 totalAttendees 的“总和”做同样的事情——但我只想要第一个元素而不是聚合。

我忽略了什么?

最佳答案

我假设您将 ORM 与 LINQ(EF、NHibernate、LINQ to SQL 等)结合使用。 ORM 不支持集合上的窗口函数(这是翻译您的查询所需要的);他们只支持聚合。

为了执行您想要的操作,您必须检索查询中的所有记录,然后在客户端代码中构造您的最终对象(获取第一项)。鉴于您似乎没有过滤任何东西,您可以试试这个:

var FbtTotals = from ff in ExpenseItemFbtItems.AsEnumerable()
group ff by ff.ERLineID into g
select new { lineId = g.Key, totalAttendees = g.Sum(m => m.Num_Attendees_In_Group), attendeeTypes = g.Count(), purposeDesc = g.FirstOrDefault(n => n.User_Purpose_Description) };

关于c# - Linq 'first' 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8829530/

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