gpt4 book ai didi

c# - LINQ to SQL with group by 子句和聚合函数

转载 作者:行者123 更新时间:2023-11-30 21:13:08 24 4
gpt4 key购买 nike

对于在 access 数据库中编写的查询,我需要等效的 LINQ to SQL 查询。下面是访问数据库中的查询。

SELECT  Table1.ID, Table1.CODE, MIN (Table1.COST) 
FROM Table1 GROUP BY Table1.ID, Table1.CODE

在此查询中,我得到的 COST 是给定重复代码的最小值

下面的查询给出了错误“无效的匿名类型成员声明符。必须使用成员分配、简单名称或成员访问来声明匿名类型成员。”

var ptQ = from i in
(from uh in ptTable
select new
{
uh.ID, uh.CODE, uh.COST
})

group i by new { i.ID, i.CODE }
into g

select new
{
g.Key.ID, g.Key.CODE, g.Min(uh => uh.COST)
};

最佳答案

您需要为 Min 调用指定属性名称:

select new {g.Key.ID, g.Key.CODE, MinimumCost = g.Min(uh=>uh.COST)};

如果属性值是属性或字段访问(根据 ID 和 CODE),C# 编译器将推断一个名称,因此以上等同于:

select new { ID = g.Key.ID,
CODE = g.Key.CODE,
MinimumCost = g.Min(uh=>uh.COST) };

就个人而言,如果它们不是惯用的 C# 名称,我会在所有地方指定名称,否则:

select new { Id = g.Key.ID,
Code = g.Key.CODE,
MinimumCost = g.Min(uh=>uh.COST) };

关于c# - LINQ to SQL with group by 子句和聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7008900/

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