Я использую следующий метод:
public PagedResult<PaymentPlanItems> GetPagedRequest(SearchRequest searchRequest, List<int> idsToExclude)
{
var list = _dbSetList.AsQueryable();
if (idsToExclude != null)
{
list = list.Where(item => !idsToExclude.Contains(item.ItemId));
}
var query = SearchHelper.GetFilteredSearch<PaymentPlanItems>(list, searchRequest);
var pagedResultMessage = SearchHelper.GetPagedResult(query, searchRequest);
return pagedResultMessage;
}
, где idsToExclude, который я первоначально получил, используя это (найдено из другого потока SO):
if (!string.IsNullOrEmpty(searchViewModel.ItemsToExclude))
{
List<int> idsToExclude = new List<int>(Array.ConvertAll(searchViewModel.ItemsToExclude.Split(','), int.Parse));
searchViewModel.Result = _paymentPlanItemsAdapter.GetPagedRequest(searchViewModel.SearchRequest, idsToExclude);
}
Затем я смотрю на сгенерированный запрос используя профиль, и я вижу, что я получаю следующее как часть моего запроса:
WHERE ( NOT ([Extent1].[ItemId] IN (440, 1017)))
Я не знаю, должен ли я действительно беспокоиться, так как мои числа вставляются в запрос напрямую, а не как параметры и если я должен быть, какие модификации этого метода / подхода я должен предпринять, чтобы этот запрос использовал параметры?