一個簡單的方法是轉換到一個數組對象
Session["Data"] = DataContext.ObjectSet
.Select(rec => new { Title = rec.Title , Count = rec.Count })
.ToArray();
你甚至可以將其轉換爲一個列表oibject並序列化爲自己的對象
var data = DataContext.ObjectSet
.Select(rec => new SessionData() { Title = rec.Title , Count = rec.Count })
.ToList();
System.Web.Script.Serialization.JavaScriptSerializer oSerializer =
new System.Web.Script.Serialization.JavaScriptSerializer();
Session["Data"] = oSerializer.Serialize(data);
,並使用
public class SessionData {
public string Title { get; set; }
public int Count { get; set; }
}
但是在會議中持有這樣的對象......你可能會做錯事不對?想象一下,在給定的時間內,你將有1000個記錄...
我喜歡第一個解決方案,我知道我可以在會話中存儲一個不可序列化的數組,我會檢查它,但是什麼是關於在會話中存儲大約1000條記錄是否存在任何錯誤: - /? –
「不可序列化的數組」一個數組是不可序列化的......一個數組將被轉換爲一個字符串,或者您可以強制添加'.ToString()',因爲這是您可以在Session中保存的數組。一個數組,它是一個本地對象,不是一個自定義對象,所以它總是可序列化的。關於** 1000條記錄**,這是每個用戶,每個會話......您將消耗服務器中的所有內存,並且如果您在共享環境中託管,則它們將停止應用程序的運行,因爲它將消耗到很多資源... – balexandre
那麼,解決方案是什麼?我在其他頁面中使用此會話作爲水晶報表數據源 –