2011-12-22 2 views
1

私のアプリケーションでL2Sを使用していますが、クエリのパフォーマンスや厄介な問題のため、dapper.netへの切り替えがますます増えています。n+1 selects問題Func <T,bool>の形式の述語をSQL where句に変換するためにL2Sプロバイダを呼び出す方法

これはうまく動作しますが、データをフィルタリングする際に、LINQishスタイルの書き込み述語が不足しています。

私の質問は、Func<T, bool>という形式の述語をどのようにSQL Server where節に変換して、それをdapperで使うことができますか?

私は誰かが前にこれをしていたに違いないと思うのですか、あるいはすべての大まかなユーザーがSQL文をハンドコーディングしていると思いますか?

タイトルからわかるように、SQL ServerのLINQ2SQLプロバイダーを呼び出すオプションがありますか?

基本的に私はdynamic linqの逆数のようなものを探しています。

答えて

2

LINQによって生成されたSQLを表示する方法があります。 Visual Studio Magazineの記事Seeing the SQL Generated by LINQ to Entity Queriesを参照してください。

は今、私はあなたが後にしているものをよりよく理解することが、私はこのに探して、もう少し行なったし、一見の価値があります関連する記事のカップルが見つかりました:StringBuilderのを使用することを提案

Dynamic where clause in dapperが、の1このコメントはSam Saffronの記事Porting LINQ-2-SQL to Dapper for great justiceを紹介しています。寄稿したSqlBuilderが役立つかもしれません。

Generate a SQL clause using a Linq-to-Sql Expression LINQ Whereを使用して、生成されたSQLからWHERE句を呼び出して取得することを示唆しています。

+0

私はL2Sによって生成されたSQLを見ることができます。しかし、それはポイントではありません。私はその種のSQLを生成するコードを探しています。 – Jan

+0

@Jan私の答えを編集しました。うまくいけば、もっと役に立ちます。それでも満足できない場合は教えてください。 – JamieSee

+0

それはもっと役立ちます - 特にSamsBuilderについてのsamsブログのエントリへのリンク。それは正確に私が探しているものではありませんが、それは正しい方向に行く。 – Jan

関連する問題