Entity Framework 4 не соблюдает ограничения базы данных для числовых полей - PullRequest
0 голосов
/ 24 мая 2011

Скажем, у меня есть таблица в БД, определенная следующим образом

Таблица: Foo
PkId - int, primary, autoincrement
Bar - int, allow null = false, по умолчанию нет

Теперь при создании модели EF из базы данных поле 'Bar' правильно определено как Nullable = false, Type = Int32.

Теперь, когда я делаю следующее

var foo = new Foo();  
context.AddToFoos(foo);  
context.SaveChanges();

Строка вставляется в базу данных, а значение «Bar» равно 0? Я бы ожидал исключения, потому что Бар не был установлен. Я понимаю, что 0 не равно нулю, но также не является значением, которое я установил.

Это умышленно или я что-то неправильно понял?

1 Ответ

2 голосов
/ 24 мая 2011

Это не обнуляемый и, следовательно, int. Значение по умолчанию для int равно 0. Таким образом, БД довольна, а фреймворк тоже в порядке.

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