c# - 使用 groupby sum 和 min 进行 EF Linq to Entities 查询

标签 c# sql linq-to-sql entity-framework linq-to-entities

我正在尝试使 Linq to Entities 查询正常工作,但我无法弄清楚。

这是我的 SQL 查询,运行良好:

SELECT SUM(ca.PointValue) as Points, ua.UserFBID, MIN(ua.[Date]) as FirstDate
  FROM [LeaderOfNow].[dbo].[QuestionAnswer] ca
  inner join [LeaderOfNow].[dbo].[LONUserAnswers] ua
  on ca.Id = ua.AnswerId
  group by ua.UserFBID
  order by Points desc, FirstDate asc

到目前为止我最好的尝试是:

            var leaders = db.LONUserAnswers
                .GroupBy(a => a.UserFBID)
                .Select(a =>
                new 
                {
                    FBID = a.Key,
                    CurrentPoints = a.Select(v => v.QuestionAnswer.PointValue).Sum(),
                    FirstAnswered = a.Min(v => v.Date)
                })
.OrderByDescending(a => a.CurrentPoints)
                .OrderBy(a => a.FirstAnswered)
                .Take(10)
                .ToList();

然而,这会导致一团乱七八糟的sql,并且只尊重第一个顺序,而不尊重第二个顺序,这是我需要工作的。关于我做错了什么有什么建议吗?谢谢您的帮助。

最佳答案

当您链接 OrderBy-Functions 时,您必须为后者使用 ThenBy()ThenDescendingBy()

关于c# - 使用 groupby sum 和 min 进行 EF Linq to Entities 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4686228/

相关文章:

sql-server - Linq-to-Sql NotSupportedException : Can I be sure it will work on a newer server version?

c# - 报告查看器 : How to load report as an embeddedresource in another assembly using reflection?

python - 使用 Python 进行 SQLite 查询

sql - PL/pgSQL 函数在 pgAdmin 之外无法正确运行

asp.net-mvc - 使用 asp.net mvc 和 linq to sql 验证唯一键?

linq - 链接到另一个表的复杂 orderby

c# - 在 ASP.NET 图表控件中水平对齐图表区域

c# - 我有一个带有动画 gif 的图片框的问题,它不是移动的,由 c# 代码

c# - 如何获取当前的 Windows 目录,例如C :\in C#

c# - 将数据库添加到现有 SQL Server 2008