如何調用L2S提供程序以Func的形式翻譯謂詞到SQL where子句?

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

我在我的應用程序中使用L2S,但我正在越來越多地轉向dapper.net,因為我遇到了查詢性能方面的重大問題,煩人的n + 1選擇了問題。

它的工作正常,但我錯過了在過濾數據時編寫謂詞的舒適LINQish風格。

所以我的問題是,如何將Func<T, bool>形式的謂詞轉換為SQL Server where子句,將其與dapper一起使用?

我認為有人必須在此之前完成此操作,或者是所有精巧的用戶手工編碼他們的sql語句?

正如標題所示,也許可以選擇為SQL Server調用LINQ2SQL提供程序?

基本上我正在尋找類似動態linq的反轉。

熱門答案

有很多方法可以查看LINQ生成的SQL。請參閱Visual Studio Magazine中的“ 查看LINQ to Entity查詢生成的SQL ”一文。

現在我更了解你所追求的是什麼,我做了一些研究,發現了一些值得一看的相關帖子:

dapper中的動態where子句建議使用Stringbuilder,但其中一條註釋指向Sam Saffron的文章,將LINQ-2-SQL移植到Dapper以獲得極大的正義 ,該文章討論了可能對您有幫助的SqlBuilder。

使用Linq-to-Sql表達式生成SQL子句 ,建議使用LINQ Where調用並從生成的SQL中獲取WHERE子句。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因