2013-08-29 6 views
0

У меня возникают проблемы с получением и установкой значения, потому что я ввел третий код в свой код.Попытка получить/установить запись

Раньше я хотел бы сделать это, чтобы получить/установить в записи:

public virtual string MyString { get; set;} 

, а затем в моей части:

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

и NHibernate бы сохранить свои ценности в БД (очевидно мои другие код не приводится здесь для краткости).

Теперь я пытаюсь установить флажок со списком. Я это за флажком:..

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

Я просто не знаю, как присвоить значения в этом случае (получение/установка myCheckBox в MyCheckBox Это сохраняются в БД, как нуль

Спасибо заранее за любую помощь.

+0

Попробуйте 'Record.MyCheckBox = value' –

+0

@DStanley Я пробовал это несколько дней назад :) – REMESQ

ответ

0

Я только что избавился от части и придерживался только записи - это позволило мне сделать get и set в виде модели, которая получилась лучше (и была менее запутанной).

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 virtual string MyCheckBox {get; задавать; } 'находится в отдельном классе записи. Это класс части. – REMESQ

+0

Хорошо, теперь предложение использовать «Record.MyCheckBox» имеет смысл. Я не поймал эту часть. Итак, где-то есть экземпляр класса 'Part'. Какая связь возвращается к «Записи»? Если класс 'Part' имеет ссылку на объект Record, который вы можете использовать, чтобы сделать что-то вроде myRecord.MyCheckBox = myCheckBox'? Назначить местному члену члену экземпляра? – DonBoitnott

+0

Я ошибся. Это должен быть «MyPartyRecord», связанный в «public class My Part: ContentPart {...}'. Вначале я показал, как обычно это делается (что работает), а просто «myCheckBox» в «MyCheckBox» заставило меня замолчать. – REMESQ

Смежные вопросы