1

这是另一个问题:

 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 = list task 和 activityid = list activity。

4

3 回答 3

2

您的语法有点偏离:您需要添加q =>Where函数中,并更改函数的顺序,使其Max成为链中的最后一个函数,

int maxQNo = Convert.ToInt32(
    context
        .questions
        .Where(q => q.TaskName.Contains(listTask) && q.ActivityID == listActivity)
        .Max(q => q.QuestionNo)
);
于 2013-06-03T02:10:13.693 回答
0

你忘q =>Where写声明

于 2013-06-03T02:10:56.247 回答
0

在子句中添加q =>块而且由于您现在正在使用列表,因此您Where还需要替换==为。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;
}
于 2013-06-03T02:12:37.737 回答