我必须列出表A和表B它通过外键通过QuestionID连接到表A参见ImageTableA和Table B
我有这个查询基于表上的图像
var tableBquestionIDs = await _dbContext.TableB.Select(q =>
q.QuestionID).toListAsync();
var tableAQuestionIDs = await _dbContext.TableA.Where(r =>
tableBquestionIDs.Contains(r.QuestionID))
.Select(r => r.QuestionID)
.ToListAsync();
这是一个考试程序,其中表B是考试的所有问题,表A是用户的答案。每个问题有两个选项AnswerID,这就是为什么QuestionId在TableA的一个组中出现两次。一旦用户回答了所有的问题。也就是TableA。ID 1到TableA。ID 6。他完成了考试。现在用户可以重新参加考试。这为多。ID 7到TableA。ID 12是重拍。我想要得到的是用户参加了多少次考试。这就是为什么在这个例子中答案是2。
有人能帮我如何在EF Core中完成这个查询吗?我急需你的帮助,因为我的库存已经积压了好几天了TIA。
你的问题有答案:使用分组。
var query =
from b in _dbContext.TableB
join a in _dbContext.TableA on b.QuestionID equals a.QuestionID
group b by a.QuestionID into g
select new
{
QuestionID = g.Key,
Count = g.Count()
};