Как вызвать поставщика L2S для перевода предиката в форме Func к предложению SQL where?

dapper linq-to-sql predicate sql sql-server-2008

Вопрос

Я использую L2S в своем приложении, но я переключаюсь все больше и больше на dapper.net, потому что у меня возникают серьезные проблемы с производительностью запросов и раздражающая проблема n + 1 .

Его работа прекрасна, но я пропускаю удобный стиль LINQish для написания предикатов при фильтрации данных.

Итак, мой вопрос: как я могу перевести предикат в форме Func<T, bool> на SQL Server, где предложение использовать его с dapper?

Я думаю, что кто-то, должно быть, сделал это раньше, или все пользователи dapper handcoding своими операторами sql?

Как следует из названия, возможно, это возможность вызвать поставщика LINQ2SQL для SQL Server?

В основном я ищу что-то вроде обратного динамического linq.

Популярные ответы

Есть способы увидеть SQL, сгенерированный LINQ. См. Статью « Просмотр запросов SQL, созданных по LINQ to Entity» из журнала Visual Studio.

Теперь, когда я понимаю, что вам нужно, я немного поглядел на это и нашел пару связанных должностей, которые заслуживают внимания:

Динамическое предложение where в dapper, которое предлагает использовать Stringbuilder, но один из комментариев указывает на статью Сэма Шаффрона « Портирование LINQ-2-SQL в Dapper для большой справедливости» , в которой говорится о внесенном SqlBuilder, который может вам помочь.

Создайте предложение SQL с помощью выражения Linq-to-Sql, которое предлагает использовать вызов LINQ Where и захват предложения WHERE из сгенерированного SQL.



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow