Выражение лямбда-оператора "IN" существует?
Я ищу для создания выражения Лямбда, как показано ниже
IQueryable<Object> queryEntity =
_db.Projects.Where(Project=>Project.Id.IN(1,2,3,4));
Я не могу найти оператора IN
в выражении Lambda.
У кого-нибудь есть предложения?
Ответы
Ответ 1
Используйте IEnumerable.Contains для этого.
var idList = new[] { 1, 2, 3, 4 };
IQueryable<Object> queryEntity =
_db.Projects.Where(Project => idList.Contains(Project.Id));
Конечно, вы можете построить встроенную строку idList
.
Ответ 2
В операторе нет оператора, но есть содержащий. Просто инвертируйте свою логику:
IQueryable<Object> queryEntity = _db.Projects.Where(Project=>(new []{1,2,3,4}).Contains(Project.Id));
Ответ 3
Вы ищете IEnumerable.Contains
_db.Projects.Where(Project => list.Contains(Project.Id));
Ответ 4
вы можете написать свой собственный
public static bool In(this object item, IEnumerable list)
{
return list.Contains(item);
}
public static bool In(this object item, params object[] list)
{
return item.In(list);
}