こんにちは、私は MVC 4 レポートを作成しており、EF5 を使用しています。データベースは SQL 2005 上にあります。
レポートに大量の長い文字列フィルターが含まれています。多数のフィルターが選択されていると、次のエラーが表示されます:「SQL ステートメントの一部が深くネストされています。クエリを書き直すか、小さなクエリに分割してください。」
フィルターが選択され、リストが返されます。LINQ クエリでは次のように使用します。
DataContext.Entity.Where(list.Contains(column));
return IQueryable<Entity>;
制限を超えたのは LINQ で生成された SQL クエリだと思いますが、制限が何であるかはわかりません。
この制限を制御する方法はありますか? または、私の推測が間違っていたら指摘してください。
どうもありがとう。
@AdrianFaciu が提供する以下のリンクに感謝します。それは本当に役に立ちます。同様の問題だと思います。(各文字列フィルターの長さが長すぎて、それらがたくさんあると思います。) Contains()を使用するときに2100パラメーターの制限(SQL Server)に達する
いくつかの回避策を読みましたが、文字列クエリを生成するのではなく、適切な解決策を探しています。少なくとも今のところ、クエリの長さを減らすためにデータを段階的にロードする必要があるようです。