LINQ (EFCore) вычисления на сервере и локально.
На сколько я понимаю, LINQ-выражения, связанные с запросами к базам данных, могут вычисляться как локально, так и на сервере.
При чем это может происходить даже в рамках одного выражения.
Правила вычисления у сервера БД отличаются от "локальных" правил.
Например,
DBMS: NULL+'строка' -> NULL
LOCAL (C#): NULL+"строка" -> "строка"
Или получение подстроки:
DBMS: SUBSTRING('12345',100) вернет пустую строку
LOCAL (C#): "12345".Substring(100) сгенерирует исключение
Когда смотришь на LINQ-запрос — нельзя точно сказать, что и где и будет вычислено.
Вопрос — как с этим жить этим вообще можно пользоваться?
Это (EF.Core) можно как-то заставить работать по одним правилам (желательно сервера)?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Пока на собственное сообщение не было ответов, его можно удалить.