我有一个带有和Entity Framework IQueryable属性的ascx用户控件,如下所示:
public IQueryable<Category> DataSource
{
get { return ViewState["Category"] as IQueryable; }
set { ViewState["Category"] = value; }
}
正如您所看到的,我尝试使用ViewState来保存该值,并且不必在每次回发时设置它,但是它表示类型未标记为可序列化...
如何将其标记为可序列化?是否可以在ViewState上保存此属性,或者更好地设置每个回发?
答案 0 :(得分:3)
基本上,IQueryable
不可序列化,因为它不是数据。查询就像达到目的的手段,而不是结束本身。
我会将结果集保存在Cache中,而不是ViewState。
答案 1 :(得分:1)
如果您绝对 将数据保存在ViewState中,您可以自行序列化或以其他方式将其展平。