Код: Выделить всё
List ids = new[]{"Id1", "Id2" .. "Id40000"}.ToList();
var customers = dbContext.Customers.Where(c => ids.Contains(c.Id));
, а Customers.Id — строку.
Но это приводит к этой ошибке :
"SqlException: внутренняя ошибка: достигнут предел служб выражений. Найдите в запросе потенциально сложные выражения и попытайтесь упростить их".
https://learn.microsoft.com/en-us/sql/r ... ase-engine -error?view=sql-server-ver16
Когда я смотрю на сгенерированный SQL, я вижу, что EF установил все идентификаторы как NVARCHAR,
Код: Выделить всё
WHERE ([Project1].[C10] IN (N'Id1', N'Id2', N'Id3', ..... , N'Id40000')
Код: Выделить всё
WHERE ([Project1].[C10] IN ('Id1', 'Id2', 'Id3', ..... , 'Id40000')
Подробнее здесь: https://stackoverflow.com/questions/791 ... xpressions
Мобильная версия