【问题标题】:How to combine these two LINQ statements into one query?如何将这两个 LINQ 语句组合成一个查询?
【发布时间】:2014-03-20 00:03:27
【问题描述】:

我是 LINQ 的新用户,我现在正在尝试检索上次测验中发布的答案数量以及上次测验的总分。困难在于我有以下两个表,我需要编写一个 LINQ 语句来检索所需的内容。

部分数据库架构:

Quiz Table: ID, Description, TotalScore
QuizAnswers Table: ID, Score, QuizID

我可以通过编写两条 LINQ 语句来检索所需的信息,但实际上我需要编写一条语句或将它们组合到一个查询中,以便将 GridView 控件绑定到它

要检索上次测验中发布答案的数量:

var lastQuizId = context.Tbl_QuizAnswers.Max(s => s.ID);
var numOfAnswers = context.Tbl_QuizAnswers.Where(s => s.QuizID == lastQuizId).Count();
return numOfAnswers;

要检索最后一次测验的总分:

var lastQuizId = context.Tbl_Quiz.Max(s => s.ID);
var totalScore = context.Tbl_Quiz.Where(s => s.ID == lastQuizId).Select(s => s.TotalScore).First();
return totalScore;

您能帮我告诉我如何组合这两个查询吗?

【问题讨论】:

    标签: c# asp.net linq linq-to-entities


    【解决方案1】:
    (from q in context.Tbl_Quiz
    select new {
                 Quiz = q, 
                 Answers = q.Tbl_QuizAnswers, 
                 AnswerCount = q.Tbl_QuizAnswers.Count, 
                 Max = q.Max(q.TotalScore)
               }
    orderby q.ID desc)
    .FirstOrDefault()
    

    如果您没有正确设置关系,您可以使用 Answers 和 AnswerCount 的那些查询,但使用 q

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-27
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多