頻繁に (再) ロードされる検索ページのドロップダウン リストにバインドするために、いくつかのユーザー固有のデータ セットを戻す必要があります (ポストバック データを利用できない可能性があります)。データベースに一度ヒットし、必要に応じて、データベースから再度取得するのではなく、セッションデータからドロップダウンリストを作成したいと考えています。
セッションを設定すると (下の最後の行)、評価された結果が保存されますか、それともセッションを参照すると毎回クエリが再実行されますか? 後者の場合、匿名型の使用を維持しながら、セッションを設定する前に評価を強制する最良の方法は何ですか?
public class CustomClass
{
public IQueryable Results1 { get; set; }
public IQueryable Results2 { get; set; }
}
public static CustomClass GetResults()
{
var results1 = (
from t in Table
select new
{
t.Id,
t.Value
};
var results2 = (
from t in Table
select new
{
t.Id,
t.Value
};
return
new CustomClass
{
Results1 = results1,
Results2 = results2
};
}
*****
Session["Results"] = GetResults();