DynamicLinq DynamicExpression ParseLambda — параметры в результирующем SQL-коде являются литеральными, что приводит к пеC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 DynamicLinq DynamicExpression ParseLambda — параметры в результирующем SQL-коде являются литеральными, что приводит к пе

Сообщение Anonymous »

Я строю большие запросы с помощью динамического Linq и был ошеломлен, обнаружив, что параметры вставляются встроенными, а не с использованием параметров sql.
Например. переменная IQueryable.Where(x => x.Id ==), скорее всего, будет иметь вид @p__linq__...
Что делает каждый запрос уникальным и требует компиляции запроса. Это плохо сказывается на производительности.
Я нашел эту статью; Как принудительно использовать параметр SQL вместо константы в предикате Expression
Это очень похоже на мой вопрос, но сбивает меня с толку еще больше.
Как я могу принудительно выделить и использовать литералы параметры sql?
Изображение

В отладчике это выглядит так
Изображение

а затем массив параметров (тип объекта) выглядит следующим образом
[img]https://i.sstatic .net/E4JAJLhZ.png[/img]

Тогда лямбда выглядит так
Изображение

И в конечном итоге перейдем к SQL:
Изображение

И еще один, но тип datetimeoffset
Изображение
как вы можете видеть мои обычные запросы (используя код C# вместо строк) подходят
Изображение


Подробнее здесь: https://stackoverflow.com/questions/791 ... esulting-s
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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