2012-11-08 6 views
3

У меня есть ограничение по умолчанию для моего поля заголовка в базе данных. В веб-приложении, если заголовок пуст, значение NULL передано в базу данных, а исключение базы данных возвращает исключение, потому что само поле не может быть нулевым (Caption varchar (50) NOT NULL).Вставить значение по умолчанию через EntityFramework

Итак, что является самым простым способом установить некоторое значение («" - пустая строка) или не отправлять NULL в базу данных, если значение действительно не предусмотрено. Как я могу установить это в EntityFrameowrk, или, возможно, на уровне доступа к данным ...?

ответ

0

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

Должна ли база данных быть изменена так, чтобы она имела значение null, поскольку она имеет смысл?

Должно ли приложение сохранять «-1» в базе данных, потому что это имеет какое-то значение или оно должно сохранять «»?

Должно ли приложение не фиксировать поле вообще, если это значение равно нулю?

Позволяет ли приложение подавать поле с данными, которые не имеют отношения к будущему значению этих данных?

По моему опыту, я дал значения, которые будут помещены в базу данных как NULL, когда null представляет отсутствие отношения или значения. Когда это значение отсутствует, это означает, что действие, которое должно или произойдет, не произошло. Это только для меня, потому что большинство людей внедряют бизнес-логику в каждом отдельном случае.

+0

База данных не позволяет вставить NULL значения. – user1810618

+0

@ user1810618 - Вы можете изменить поле, чтобы разрешить NULL. –

+0

Я не могу этого сделать, потому что у меня нет доступа к схеме базы данных изменений. – user1810618

0

В Entity вы можете инициализировать свой объект при создании? Я знаю, что вы можете сделать это в Линке. Можете ли вы войти в код для объекта сущности и установить соответствующее свойство на значение по умолчанию при создании?

1

Просто определите свойство с пустой строкой сразу после создания нового объекта. Например, внутри конструктора. Example

перед обновлением существующего объекта, вы можете проверить свойство для нуля:

entity.StringProperty = entity.StringProperty ?? String.Empty; 
_db.SaveChanges(); 
0

установить его в конструкторе.

partial class MyEntityName { 
    public MyEntityName() { 
     this.Caption = ""; 
    } 
} 
1

В моей рамках сущности системы MVC4 5.0 Я использую, как это, (DataAnnotation)

[DefaultValue = DateTime.Now] 

общественного DateTime MyDateTime {получить; задавать; }

}

Или как это для других типов ... string.Empty

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