Как фильтровать объекты в EF Core 8 с помощью содержимого для SQL Server 2022 с совместимостью (100)? [дубликат]C#

Место общения программистов C#
Ответить
Anonymous
 Как фильтровать объекты в EF Core 8 с помощью содержимого для SQL Server 2022 с совместимостью (100)? [дубликат]

Сообщение Anonymous »

Я работаю с Entity Framework Core 8 (EF Core 8) и SQL Server 2022, и мне нужно отфильтровать список сущностей на основе списка идентификаторов. Однако использование метода contains в запросах LINQ вызывает проблемы совместимости с SQL Server 2022. Я не хочу менять свою совместимость(100).
Я прочитал официальную документацию и знаю что в EF Core 8 внесены изменения, влияющие на преобразование содержимого в SQL, что приводит к проблемам совместимости с SQL Server.

Код: Выделить всё

public async Task GetItemsAsync()
{

var idsList = new List { 101, 102, 103, 104, 105 };

Expression filter = item => idsList.Contains(item.ItemId);

var items = await _myRepository.GetWithFilter(
filter: filter,
orderBy: null, // Optional
includeProperties: x => x.RelatedData // Optional
);

return items;
}
Проблема
Использование idsList.Contains(item.ItemId) приводит к тому, что SQL несовместим с SQL. Server 2022, что приводит к синтаксическим ошибкам во время выполнения запроса.
Дополнительная информация
Основная версия Entity Framework: 8

Версия SQL Server: 2022 (уровень совместимости 100)
Я изучил различные обходные пути, но не нашел совместимого решения.
Предложите способ фильтрации объектов, которые будут работать с SQL Server 2022 с совместимостью 100.

Подробнее здесь: https://stackoverflow.com/questions/788 ... -with-comp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»