LINQで大きなフィルタリストをSQLに送信する方法

私はIdによって特定の列を取得したいかなり大きなテーブルを持っています。データを保存するには、IDのリストを送信する必要があります。私はcommaseperated文字列によってIDをストアドプロシージャに送信する方法を試しましたが、文字列を選択可能なリストに戻すには数分かかりました。 今私は、ビューに含まれているとしようとしたが、私は常に、あまりにも多くのパラメータを使用するエラーが発生します。

私の問題を解決するベストプラクティスの方法はありますか?おかげさまで、ありがとうございます。

1
linqについてはわかりませんが、C#とdirect SQLを使用すると、TVP(テーブル値パラメータ)を調べることができます。それはsprocにメモリテーブルを送信する方法です...
追加された 著者 bryanmac,
Contains でコードを表示する
追加された 著者 Oybek,

2 答え

ダイレクトC#とSQLでは、テーブル値パラメータを使用できます。これはメモリテーブルをsprocに渡す方法です。

http://msdn.microsoft.com/en-us/library/bb675163.aspx

私はLinqがそれをサポートしているとは思わない。しかし、この記事では、回避策を使ってLinq経由でTVPを使用することについて(試していない)

http://blog.mikecouturier.com/2010 /01/sql-2008-tvp-table-valued-parameters.html

希望が役立ちます。

2
追加された

From Hitting the 2100 parameter limit (SQL Server) when using Contains()

そうです(これを一括して管理可能な部分)。ザ   他の(非LINQ)オプションには、CSVと「分割」UDFが含まれます。   テーブル値パラメータ(SQL2008)。

質問を投稿する前に、SOで検索してください。

1
追加された