使用where方法查找列的最大值

本文关键字:最大值 查找 where 方法 使用 | 更新日期: 2023-09-27 18:16:49

还有一个问题:

 public int GetMaxValue(string listTask , int listActivity)
{
    int maxQNo = Convert.ToInt32(context.questions.Max(q => q.QuestionNo).Where(q.TaskName.Contains(listTask) && q.ActivityID == listActivity));
    return maxQNo+1;
}

我得到q不存在的错误是当前上下文,我在这里要做的是获得列(questionNo)的最大值,其中taskname =列表任务和activityid =列表活动。

使用where方法查找列的最大值

您的语法有点偏离:您需要将q =>添加到Where函数中,并更改函数的顺序,以便Max是链中的最后一个函数,

int maxQNo = Convert.ToInt32(
    context
        .questions
        .Where(q => q.TaskName.Contains(listTask) && q.ActivityID == listActivity)
        .Max(q => q.QuestionNo)
);

您忘记在Where语句中添加q =>

Where子句中添加q =>块,并且由于您现在使用的是列表,您还需要将==替换为Contains

public int GetMaxValue(string listTask , int listActivity)
{
    int maxQNo = Convert.ToInt32(context.questions.Max(q => q.QuestionNo)
                                                  .Where(q=>q.TaskName.Contains(listTask) && 
                                                         q.ActivityID.Contains(listActivity));
    return maxQNo+1;
}