Сначала я использую EF 4.1 с базой данных.
Пример таблицы:
CREATE TABLE dbo.Foo(
[ID] [int] IDENTITY(1,1) NOT NULL,
Created datetime not null default(getdate()),
Title varchar(80) not null
PRIMARY KEY CLUSTERED ([ID] ASC)
)
EF корректно загружает модель со всеми 3 столбцами как nullable = false.
Вывод из элемента генерации кода "ADO.NET DbContext Generator":
public partial class Foo
{
public int ID { get; set; }
public System.DateTime Created { get; set; }
public string Title { get; set; }
}
В MVC3 я генерирую FooController
через контекст db и модель foo. Когда я поднимаю / Foo / Create и нажимаю «Создать» в пустой форме, это показывает ошибку проверки в поле «Создано», но не в «Заголовке».
Если я ввожу только «созданную» дату, я получаю исключение:
Проверка не удалась для одного или нескольких объектов. Смотрите 'EntityValidationErrors'
собственность для более подробной информации
Исключением является "Поле заголовка обязательно для заполнения".
Я не уверен, почему он хорошо работает для одного столбца, но не для другого. Моим первым исправлением было добавление аннотации, однако код класса автоматически генерируется EF.
Единственное исправление, которое, по-видимому, работает, это использование класса частичных метаданных: ASP.NET MVC3 - аннотации данных с EF Database First (ObjectConext, DbContext)
Я могу добавить тег [Required] по желанию, однако это не нужно. Это ошибка в EF или я что-то упускаю?