2013-08-29 6 views
0

코드에 세 번째 요소가 추가되어 값을 가져오고 설정하는 데 문제가 있습니다. 내 인생에서레코드를 가져 오거나 설정하려고 시도합니다.

public virtual string MyString { get; set;} 

다음 : 분명히

public string MyString 
{ 
    get { return Record.MyString; } 
    set { Record.MyString = value; } 
} 

와 NHibernate에이 DB에 내 값을 절약 할 (내 다른

는 이전에 나는/레코드에 설정을 얻기 위해 이런 짓을 했을까 간결함을 위해 코드는 여기에 제시되지 않음).

이제 목록이있는 확인란을 시도하고 있습니다. ..

public class MyPart : ContentPart<MyPartRecord> 
{ 
    public MyPart() 
    { 
     MyList = Enum.GetValues(typeof(MyEnum)) 
      .Cast<MyEnum>().Select(x => 
     { 
      return new SelectListItem { Text = x.ToString().ToUpper(), 
       Value = ((int)x).ToString() }; 
     }).ToList(); 
    } 

    public IList<SelectListItem> MyList { get; set; } 
    private string myCheckBox; 

    // Record class contains the following commented code: 
    // public virtual string MyCheckBox { get; set;} 

    // Trying to do this now here in MyPart class: 
    public string MyCheckBox 
    { 
     get 
     { 
      if (!string.IsNullOrEmpty(myCheckBox)) 
       return myCheckBox; 
      // Tried the following commented code to get value: 
      // Record.MyCheckBox = myCheckBox; 
      return string.Join(",", MyList.Where(x => x.Selected) 
       .Select(x => x.Value).ToArray()); 
     } 
     set 
     { 
      myCheckBox = value; 
      // Tried the following commented code to set value: 
      // Record.MyCheckBox = myCheckBox; 
     } 
    } 
} 

난 그냥/점점 MyCheckBoxmyCheckBox 설정 (이 경우에 값을 할당하는 방법을 모른다 그것은 널 (null)로 DB에 저장되는 것

감사 : 나는 확인란이 있습니다 사전에 어떤 도움.

+0

'Record.MyCheckBox = value'를 시도하십시오. –

+0

@DStanley 며칠 전에 시도했습니다. – REMESQ

답변

0

난 그냥 부분을 제거하고 만 기록을 고수하기 감아 -이 나를 밖으로 일 뷰 모델에 getset을 할 수 더 나은 (덜 혼란이었다).

0

당신이 MyCheckBox의 기본 virtual 구현을 숨어있을 거라고 보인다.

난 당신이 아니라 override 기본 좋겠 대신 생각 :

public override String MyCheckBox 
{ 
    get 
    { 
     if (!string.IsNullOrEmpty(myCheckBox)) 
      return myCheckBox; 
     // Tried the following commented code to get value: 
     // Record.MyCheckBox = myCheckBox; 
     return string.Join(",", MyList.Where(x => x.Selected) 
      .Select(x => x.Value).ToArray()); 
    } 
    set 
    { 
     myCheckBox = value; 
     // Tried the following commented code to set value: 
     // Record.MyCheckBox = myCheckBox; 
    } 
} 

함으로써 그것을 난독 대신 가변되고?

+0

public 가상 문자열 MyCheckBox {get; 세트; }'는 별도의 레코드 클래스에 있습니다. 이것은 파트 클래스입니다. – REMESQ

+0

좋습니다. 이제'Record.MyCheckBox'를 사용하는 것이 좋습니다. 나는 그 부분을 잡지 못했다. 어딘가에 'Part' 클래스의 인스턴스가 있습니다. 그러면 '기록'으로 돌아가는 동점은 무엇입니까? 'Part' 클래스는'myRecord.MyCheckBox = myCheckBox'와 같은 일을 할 수있는'Record' 객체에 대한 참조를 가져야합니까? 로컬 멤버를 인스턴스 멤버에 할당 하시겠습니까? – DonBoitnott

+0

나는 잘못 입력했다. 그것은 MyPartyRecord이어야합니다. 연결은 public class My Part : ContentPart {...}'입니다. 처음에는 정상적으로 (작동하는) 방법을 보여주었습니다. 단지 'myCheckBox'를 'MyCheckBox'로 가져 와서 저를 곤란하게 만들었습니다. – REMESQ

관련 문제