LINQ to SQL を使用して、Sql サーバー 2008 で FullTextSearch ストアド プロシージャの検索結果を取得しています。プロシージャをサーバー エクスプローラーからデザイナーにドラッグし、適切な戻り値の型とパラメーターを使用してメソッドを作成しました。問題は、このメソッドを呼び出した結果のカウントを取得する必要があるため、リポジトリ メソッド (Sproc メソッドを呼び出して結果を IQueryable として返す) を使用して、次の呼び出しを行うことです。
var result = repository.FullTextSearch(searchText);
int resultsCount = result.Count();
var ret = result.Skip((pageNumber - 1) * PageSize).Take(PageSize).ToList();
このコードは、実行しようとするたびに InvalidOperationException を生成します。例外には、「クエリ結果を複数回列挙することはできません」というメッセージが表示されます。
Sproc 用に生成されたメソッドは ISingleResult を返しますが、これは私の知る限り OK です。ビューでページングをサポートする必要があるため、ページの総数を知る必要があります。これは、すべてのアイテムの数を取得できる場合にのみ可能です。
ここで何が欠けていますか?