У меня есть некоторые параметры фильтра в Controller
проекта ASP.NET MVC
, и мне нужно создать динамическое предложение Where
в соответствии с этими параметрами. Если параметр isActive
равен true, он получит записи, имеющие StatusId = 1
. Существуют также параметры userName
и labId
в методе, которые должны быть сопоставлены в предложении Where
.Динамическое предложение Where в выражении Lambda
public ActionResult GetStudents(int labId, string userName, bool isAll)
{
var allRecords = repository.Students;
//If isAll, get all the records having StatusId = 1
var result = allRecords.Where(m => (isAll) || m.StatusId == 1);
//???
}
Я использую фильтр выше, но я понятия не имею, что является наиболее подходящим способом (конвенция) для нескольких параметров для того, чтобы получить результат быстро. Есть идеи?
Примечание: Я хочу фильтр для всех трех параметров и где предложение должно содержать все комбинации в соответствии со значениями параметра (также равно нулю или пусто).
'если (isAll) {allRecords = allRecords.Where (т => m.StatusId == 1; } else {..} ' –
Несколько предложений' Where' объединены * и *. Таким образом, вы можете добавить их так, как вам нужно, как показал @StephenMuecke. –
@StephenMuecke Не могли бы вы разместить полную статью, добавив ее в другие параметры? Потому что комбинации labId и userName меня смущают. –