2011-01-01 3 views
0

Ich möchte die ContentPageBase ändern, in einer funktionalen Site, Ich habe versucht, eine Eigenschaft namens (Gewicht), , aber wenn es gibt eine vorhandene Seite in der Datenbank, die Website wird fehlschlagen und löst eine Ausnahme aus (Objektverweis nicht auf eine Instanz eines Objekts festgelegt).N2Cms, Hinzufügen einer neuen Eigenschaft zu einer ContentPageBase-Klasse, korrumpiert die bereits eingegebenen Daten

Wie kann ich die bereits eingegebenen Daten korrigieren?

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

Antwort

0

i herausgefunden, wie dieses Problem zu lösen, fallen nur die Getter und Setter der Immobilie und es wie folgt verwendet werden:

public virtual int Weight { get; set;} 

diese neue Funktion in N2Cms 2.0 ist.

und wenn Sie der neu hinzugefügten Eigenschaft einen neuen Wert zuweisen, fügt N2cms einen neuen Datensatz für die Tabelle N2Detail hinzu.

1

Ja, Sie erhalten beim Zugriff auf die Eigenschaft eine Nullreferenz, und in der Datenbank sind keine Daten vorhanden.

Der Getter in der alten N2CMS muss

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

sein Wenn Sie 0 als Standard natürlich möchten.

Beste Bewertung