N2Cms, добавляя новое свойство в класс ContentPageBase, повреждает уже введенные данные - PullRequest
0 голосов
/ 01 января 2011

Я хочу изменить ContentPageBase на функциональном сайте, я попытался добавить свойство, называемое, например, (weight), но если в базе данных существует существующая страница, сайт будет работать неправильно и выдает исключение(Ссылка на объект не установлена ​​для экземпляра объекта).

как я могу исправить уже введенные данные?

public abstract class ContentPageBase : PageBase, ICommentable
{
   [EditableTextBox("Weight", 10, ContainerName = Tabs.Details)]
        //newly added property.
        public virtual int Weight
        {
            get { return (int)GetDetail("Weight"); }
            set { SetDetail("Weight", value); }
        }
}

Ответы [ 2 ]

1 голос
/ 13 января 2011

Да, при обращении к свойству вы получаете нулевую ссылку, и в БД нет данных.

Получатель в старой N2CMS должен быть

 get { return (int)(GetDetail("Weight") ?? 0); }

Если вы хотите 0 по умолчанию, конечно.

С наилучшими пожеланиями

0 голосов
/ 03 января 2011

я разобрался, как это решить, просто бросьте Getters и Setters свойства и используйте его так:

public virtual int Weight { get; set;}

это новая функция в N2Cms 2.0.

и когда вы даете новое значение новому добавленному свойству, N2cms добавляет новую запись в таблицу N2Detail для страницы.

...