C# 使用where方法查找列的最大值
还有一个问题:C# 使用where方法查找列的最大值,c#,entity,C#,Entity,还有一个问题: 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; }
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。您的语法有点不正确:您需要将
q=>
添加到where
函数中,并更改函数的顺序,以便Max
是链中的最后一个函数
int maxQNo = Convert.ToInt32(
context
.questions
.Where(q => q.TaskName.Contains(listTask) && q.ActivityID == listActivity)
.Max(q => q.QuestionNo)
);
您忘记将
q=>
放在Where
station中,在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;
}
您尚未指定q作为where的输入lambda@user2376998当前位置我已经在你的旧帖子中回答了我编辑了你的标题。请参见“”,其中共识是“不,他们不应该”。您不想在
.where()
之后添加.Max()
.Max()
立即执行查询。