質問

私は自分のウェブサイトでデータのページングにLINQを使用しています。現在、Skip()とTake()を使用してページングを実行しています。ここで、キャッシュ依存関係を使用してデータをキャッシュして、データが変更された場合にキャッシュが無効になるようにします。ただし、SQLサーバー クエリ通知 一番の表現をサポートしないでください。 TOPを生成しないLINQを使用して、ページのデータセットを照会する別の方法はありますか?または、このデータをキャッシュする別の方法で、それが無効になるようにしますか?

役に立ちましたか?

解決

2つのパスでデータを引き出します。

// step1: get the IDs of the items in the current page.
List<int> customerIds = db.Customers
  .Where(filter)
  .OrderBy(c => c.FirstName)
  .ThenBy(c => c.CustomerID)
  .Select(c => c.CustomerID)
  .Skip(200)
  .Take(20)
  .ToList();

// step2: get the items for that page
List<Customer> customers = db.Customers
  .Where(c => customerIds.Contains(c.CustomerID))
  .ToList();

他のヒント

結果セット全体をキャッシュし、SQLDEPENDACTYをそれに設定します。

キャッシュからセット全体を読んでから、Skip/Takeを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top