LINQ到SQL GROUP BY和总和选择 [英] Linq to SQL Group by and Sum in Select

查看:187
本文介绍了LINQ到SQL GROUP BY和总和选择的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要转换的SQL查询到LINQ的:

I need to convert that SQL Query into Linq:

SELECT
    SUM([ArticleAmount]) as amount
    ,[ArticleName]
FROM [DB].[dbo].[OrderedArticle]

group by articlename

order by amount desc

我尝试以下code,但我在a.ArticleName,上面写着ArticleName的定义,得到一个错误就会丢失。

I tried the following code but I get an error at "a.ArticleName" that says a definition of "ArticleName" would be missing.

var sells = orderedArt
            .GroupBy(a => a.ArticleName)
            .Select(a => new {Amount = a.Sum(b => b.ArticleAmount),Name=a.ArticleName})
            .OrderByDescending(a=>a.Amount)
            .ToList();

现拥有你这样的人,并知道如何解决这个问题?

Has someone of you and idea how to fix this?

感谢您的帮助!

推荐答案

您收到此错误,因为分组不返回的IEnumerable< OrderedArticle> ,但的IEnumerable< IGrouping<字符串,OrderedArticle>>

You are getting this error because the Grouping doesn't return IEnumerable<OrderedArticle> but IEnumerable<IGrouping<string, OrderedArticle>>

您需要更改code使用 a.Key

You need to change your code to use a.Key:

var sells = orderedArt
    .GroupBy(a => a.ArticleName)
    .Select(a => new { Amount = a.Sum(b => b.ArticleAmount), Name = a.Key})
    .OrderByDescending(a => a.Amount)
    .ToList();

这篇关于LINQ到SQL GROUP BY和总和选择的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆