EF - поиск элементов, которых нет в списке целых чисел - результирующий запрос не использует параметры - PullRequest
0 голосов
/ 22 января 2020

Я использую следующий метод:

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))) 

Я не знаю, должен ли я действительно беспокоиться, так как мои числа вставляются в запрос напрямую, а не как параметры и если я должен быть, какие модификации этого метода / подхода я должен предпринять, чтобы этот запрос использовал параметры?

...