Каков наилучший способ присвоить значения String.Empty свойству, если оно равно Null с использованием asp.net mvc - PullRequest
0 голосов
/ 15 марта 2011

У меня есть столбец в базе данных, который является именем его строки с нулевым значением.

когда я ничего не ввожу в поле имени, оно сохраняется в базе данных как NULL.

но мне нужно сохранить это значение как string.Empty или "".

Я сделал что-то подобное.

   h.assignedName= m.Name== null ? string.Empty : m.Name;

Свойство ViewModel имеет

Public string Name {get;set;}

У меня вопрос, есть ли другой способ присвоения этому значению значения String.Empty без выполнения каких-либо условий, как указано выше?

Я не хочу использовать? оператор, чтобы проверить условие или если условие.

Спасибо

Ответы [ 3 ]

2 голосов
/ 15 марта 2011

Вы можете изменить столбец в базе данных не на NULL и установить значение по умолчанию ''. Таким образом, вы не должны использовать? условна. Не уверен, что это лучшая практика, но это избавит вас от необходимости добавлять дополнительный код для обслуживания.

Другой способ - создать класс-оболочку для данных. Я вижу, вы используете m.Name в своем примере кода. Вы могли бы иметь:

    public class MyWrapper
    {
        private string _name;

        public string Name
        {
            get {
                 if (String.IsNullOrEmpty(_name)){
                   return String.Empty;
                 }

                 return _name;
           }

          set{
     _name = value;
}
       }
    }

Поэтому, когда вы читаете данные из базы данных, создайте экземпляр своего класса-обертки, чтобы скрыть детали при получении имени.

1 голос
/ 15 марта 2011

Идея Джейсона звучит, если вы не заботитесь о том, чтобы внести незначительные изменения.Другой способ сделать это - отказаться от автоматического свойства и обработать проверку в get

private string name;
public string Name
{
   get { return (name == null) ? string.Empty : name; }
}

. Очевидно, что для всех свойств, которые вы хотите использовать в этом стиле, у вас будет больше исходного кода.

или вы можете быть уверены, что он никогда не будет нулевым в ваших конструкторах

0 голосов
/ 15 марта 2011

Возможно, вы захотите изменить макет построения кода и использовать бизнес-правило, например, «m.Name никогда не может быть нулевым».И затем вы должны инициализировать его как String.Empty, чтобы он никогда не мог быть нулевым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...