gpt4 book ai didi

c# - Linq:Group By 没有生成 Group by Sql

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

我正在尝试在 linq 中对 C# 中的实体进行分组,但生成的查询不包含分组依据,它只生成选择

林克:

IQueryable<EntityDataView> data = (from a in ctx.EntityDataViews
select a);

IQueryable<viewClass> groupedData = (from x in data
group x by new
{
x.Id,
x.Code,
x.Name,
x.Amuont,

} into g
orderby g.Key.Amuont descending
select new viewClass()
{
Id = g.Key.Id,
Code = g.Key.Code,
Name = g.Key.Name,
Amuont = g.Key.Amuont,
});

SQL:

SELECT 
[Project1].[Code] AS [Code],
[Project1].[Name] AS [Name],
[Project1].[Id] AS [Id],
[Project1].[Amuont] AS [Amuont]
FROM ( SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Code] AS [Code],
[Extent1].[Amuont] AS [Amuont],
[Extent1].[Name] AS [Name],
FROM [dbo].[EntityDataView] AS [Extent1]
) AS [Project1]
ORDER BY [Project1].[Amuont] DESC

最佳答案

它没有创建GROUP BY,因为没有必要。您正在使用 group into,您没有迭代该组,也没有聚合任何值。如果 Id 是您的唯一标识列,您甚至没有创建组,因为每个组只有一个项目。这与简单的选择基本相同。

您必须接受 EF 将根据自己对 LINQ 查询的评估创建 SQL 查询。这些查询可能不同。您唯一的保证是它们产生相同的结果。

关于c# - Linq:Group By 没有生成 Group by Sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41826375/

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