简体   繁体   English

实体框架Where方法

[英]entity framework Where method

i need some help in this , how do i write a where clause statement where i want to retrieve record based on 2 columns : 我需要一些帮助,我该如何编写一个where子句语句,该语句基于2列在哪里检索记录:

This is how i am trying to write in code : 这就是我试图用代码编写的方式:

public IList<Model.question> GetAll(string search , int search1)
{
    IList<Model.question> lstQuestions = context.questions.ToList();
    return lstQuestions.Where(a => a.TaskName.Contains(search) && p => p.ActivityID.Contains(search1)).ToList(); 
}

but there is an error with this statement . 但是这个说法有错误。

----- ABOVE SOLVED ------------ -----以上已解决------------

Heres another problem : 这是另一个问题:

 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;
    }

i get the error where q doesn't exist is current context , what i am trying to do here , is to get the max value of the column ( questionNo) where taskname = list task and activityid = list activity. 我收到错误,其中q不存在是当前上下文,我在这里尝试做的是获取列的最大值(questionNo),其中taskname = list task和activityid = list activity。

public IList<Model.question> GetAll(string search , int search1)
    {
        IList<Model.question> lstQuestions = context.questions.ToList();
        return lstQuestions.Where(a => a.TaskName.Contains(search) && a.ActivityID==search1)).ToList(); 
    }

Answer of new problem: 新问题的答案:

Add q => block in Where clause. Where子句中添加q =>块。

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;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM