0

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); }
        }
}
4

2 に答える 2

1

はい、プロパティにアクセスするとnull参照が取得され、DBにデータが存在しません。

古い N2CMS のゲッターは、

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

もちろん、デフォルトとして0が必要な場合。

宜しくお願いします

于 2011-01-13T20:17:41.717 に答える
0

これを解決する方法を見つけました。プロパティのゲッターとセッターをドロップして、次のように使用します。

public virtual int Weight { get; set;}

これは N2Cms 2.0 の新機能です。

新しく追加されたプロパティに新しい値を与えると、N2cms はページの N2Detail テーブルに新しいレコードを追加します。

于 2011-01-03T11:48:11.280 に答える