質問: 二度db ***を***打つか、または2つの別々のクエリを書く***ことなく***複雑なLinqクエリと何百万ものレコードの行数を取得する方法はありますか? 私自身の提案があるかもしれません。ストアドプロシージャを作成しますが、私はMySQLではなくMSSQLを使います。 より良い提案があれば素晴らしいでしょう。また、マイクロソフトがこの機能をエンティティフレームワークに追加することに取り組んでいるかどうかを誰かが知っている場合もあります。
回答: Take()関数を使うことをお勧めします。これは、linqクエリまたはListから取得するレコード数を指定するために使用できます。例えば ``` List _customers = (from a in db.customers select a).ToList(); var _dataToWebPage = _customers.Take(50); ``` 私は_customersリストをセッションに書き込み、その後ユーザーが2、3ページをクリックしたときなどのページネーションクエリにこのリストを使用するというMVCアプリで同様の手法を使用します。ただし、リストが非常に大きい場合は、それを書いてもセッションはおそらくお勧めできません。 ページ付けのためにあなたはSkip()とTake()関数を一緒に使うことができます。たとえば、データの2ページ目を取得するには、次のようにします。 ``` var _dataToWebPage = _customers.Skip(50).Take(50); ```