You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Entity Framework中查询派生表并使用聚合函数?

Entity Framework 实现派生表查询

你的需求是统计用户xyz答对次数超过1次的题目总数,对应的SQL可以通过以下两种LINQ方式在Entity Framework中实现:

方式一:LINQ查询语法

var userId = "xyz";

var questionCount = (from sub in 
                        (from answer in dbContext.UserAnswers
                         where answer.UserId == userId && answer.Correct == 1
                         group answer by answer.QuestionId into grouped
                         where grouped.Count() > 1
                         select grouped.Key)
                     select sub).Count();

方式二:LINQ方法语法(链式调用)

var userId = "xyz";

var questionCount = dbContext.UserAnswers
    .Where(answer => answer.UserId == userId && answer.Correct == 1)
    .GroupBy(answer => answer.QuestionId)
    .Where(grouped => grouped.Count() > 1)
    .Select(grouped => grouped.Key)
    .Count();

说明

两种写法都会生成与你提供的SQL逻辑完全一致的查询语句,Entity Framework会自动将内层的分组筛选逻辑转换为派生表,最终返回符合条件的题目数量。

内容的提问来源于stack exchange,提问作者Kevin Grajewski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:30:42