Сериализация - PullRequest
       22

Сериализация

0 голосов
/ 16 сентября 2011

У меня есть пользовательский элемент управления ascx и свойство Entity Framework IQueryable, например:

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

Как вы можете видеть, я пытался использовать ViewState для сохранения значения, и мне не нужно его устанавливатькаждый постбэк, но он говорит, что тип не помечен как сериализуемый ...

как я могу пометить это как сериализуемый ?, рекомендуется ли сохранять это свойство во ViewState или лучше устанавливать при каждой обратной передаче?

Ответы [ 2 ]

3 голосов
/ 16 сентября 2011

По существу, IQueryable не сериализуем, потому что это не данные.Запрос похож на средство для достижения цели, а не на саму цель.

Я бы сохранял набор результатов в Cache, а не в ViewState.

1 голос
/ 16 сентября 2011

Если у вас абсолютно есть для сохранения данных в ViewState, вы всегда можете сериализовать их самостоятельно или сгладить другим способом.

...