序列化iqueryable

时间:2011-09-16 03:55:26

标签: asp.net entity-framework viewstate iqueryable

我有一个带有和Entity Framework IQueryable属性的ascx用户控件,如下所示:

  public IQueryable<Category> DataSource
    {
        get { return ViewState["Category"] as IQueryable; }
        set { ViewState["Category"] = value; }
    }

正如您所看到的,我尝试使用ViewState来保存该值,并且不必在每次回发时设置它,但是它表示类型未标记为可序列化...

如何将其标记为可序列化?是否可以在ViewState上保存此属性,或者更好地设置每个回发?

2 个答案:

答案 0 :(得分:3)

基本上,IQueryable不可序列化,因为它不是数据。查询就像达到目的的手段,而不是结束本身。

我会将结果集保存在Cache中,而不是ViewState。

答案 1 :(得分:1)

如果您绝对 将数据保存在ViewState中,您可以自行序列化或以其他方式将其展平。