首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助将SQL查询编写为linq表达式

需要帮助将SQL查询编写为linq表达式
EN

Stack Overflow用户
提问于 2017-03-20 19:35:36
回答 1查看 58关注 0票数 2

我是新来的,所以如果我犯了什么错,我很抱歉。我编写了以下SQL代码,以检索特定教员中每个用户提交的数量。

代码语言:javascript
复制
declare @faculty as int = 1
SELECT COUNT(ew_student.sName) AS Submissions, ew_student.sEmail, ew_faculty.nFaculty
FROM ew_student 
INNER JOIN ew_submission ON ew_student.sId = ew_submission.sId INNER JOIN
                            ew_faculty ON ew_student.sFaculty = ew_faculty.fId
WHERE ew_faculty.fId = @faculty
GROUP BY ew_student.sEmail, ew_faculty.nFaculty

通过Management运行此查询将返回我期望的结果,但是在我的ASP.NET web应用程序上,我在编写LINQ表达式时遇到了困难。

我的数据库上下文名为"db“。这是我到目前为止所得到的,但是它返回了错误的结果。

代码语言:javascript
复制
var stats = from ew_submissions in db.ew_submissions
            where ew_submissions.ew_student.ew_faculty.fId == facultyId
            group new { ew_submissions.ew_student, ew_submissions.ew_student.ew_faculty } by new
            {
                ew_submissions.ew_student.sEmail,
                ew_submissions.ew_student.sName,
                ew_submissions.ew_student.ew_faculty.nFaculty

            } into g
            select new
            {
                Submissions = g.Count(),
                g.Key.sName


            };

return stats.ToList();

我想检索一个特定用户提交了多少份,但是上面的LINQ表达式总是为每个用户返回1。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-20 19:39:25

您切换了想要分组(值)的位置,并按什么(键):

代码语言:javascript
复制
var stats = from ew_submissions in db.ew_submissions
            where ew_submissions.ew_student.ew_faculty.fId == facultyId
            group ew_submissions.ew_student.sName by new
            {
                ew_submissions.ew_student.sEmail,
                ew_submissions.ew_student.ew_faculty.nFaculty
            } into g
            select new
            {
                Submissions = g.Count(),
                g.Key.sName
            };

return stats.ToList();

还请注意,当您按sEmailnFaculty进行分组时,您不希望也按sName分组,因为这样您可能会得到count 1的许多结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42912468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档