1

我有一个数据库表名问题,在该表中有很多列,但我想关注这 3 列:Activity、Task 和 QuestionNO

问题是我想获得关于活动和任务的列 QuestionNo 的最大值。所以如果 activity 是 1 , task 是 2 , questionNo 从 1 开始, 2 等等,那么当 activiy 是 1 , task 是 3 , questionNo 从 1 开始, 2 等等......因为我会继续添加 +1值到列 QuestionNo 的最大值,我想在其不同的活动和任务时从 1 开始。

问题现在在数据库中看起来像这样:

  Activity   Task   QuestionNo
      1       2        1
      1       2        2
      1       2        3
      1       3        4
      1       3        5 
      2       1        6 

我希望它像:

  Activity   Task   QuestionNo
      1       2        1
      1       2        2
      1       2        3
      1       3        1  <---
      1       3        2  <---
      2       1        1  <---

现在我检索列 QuestionNo 的最大值的代码只是:

 public int GetMaxValue()
    {
        int maxQNo = Convert.ToInt32(context.questions.Max(q => q.QuestionNo));
        return maxQNo+1;
    }

我正在使用实体框架。我想知道如何检索关于活动和任务的列 QuestionNo 的最大值。

4

1 回答 1

0

利用Where

public int GetNextQuestionNo(int activity, int task)
{
    return context.questions
        .Where(q => q.Activity == activity && q.Task == task)
        .Max(q => q.QuestionNo) + 1;
}
于 2013-09-06T22:01:47.747 回答