2011-01-01 2 views
0

기능 사이트에서 ContentPageBase를 수정하려고합니다. 예를 들어 weight ( )라는 속성을 추가하려고했지만 존재하는 경우 데이터베이스의 기존 페이지, 사이트가 오작동하고 Exception을 던집니다 (객체 참조가 객체의 인스턴스로 설정되지 않음).N2Cms, ContentPageBase 클래스에 새 속성을 추가하면 이미 입력 된 데이터가 손상됩니다.

이미 입력 한 데이터를 수정할 수 있습니까? 내가이 문제를 해결하는 방법을 알아 냈

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

답변

0

는 는 속성의 getter 및 setter를 삭제하고 다음과 같이 사용 :이 N2Cms 2.0의 새로운 기능입니다

public virtual int Weight { get; set;} 

.

새로 추가 한 속성에 새 값을 지정하면 N2cms에서 해당 페이지의 N2Detail 테이블에 새 레코드를 추가합니다.

1

예 속성에 액세스 할 때 null 참조가 발생하고 DB에 데이터가 없습니다. 당신은 물론 기본으로 공을 원하는 경우에

이전 N2CMS의 게터는

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

을해야합니다.

우수

관련 문제