Я использовал подход EF 4.x к базе данных. У меня есть файл edmx, и он сгенерировал класс C #, производный от EntityObject. У меня есть приложение ASP.NET MVC 4, которое использует сгенерированный класс в качестве модели. Проверка клиента, которая проверяет обязательные поля, работала нормально.
Теперь я перешел на EF 5 и использовал генератор DbContext, он генерирует класс POCO C #. Я обнаружил, что обязательная проверка поля больше не работает в EF 5.
Я думаю, проблема в том, что в генераторе EntityObject EF 4.x сгенерированный класс имеет атрибут [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
. Однако в классе POCO EF 5.x атрибуты аннотации данных не создаются. Таким образом, необходимая полевая информация теряется.
Итак, мои вопросы:
- Почему генератор EF 5.x DbContext не генерирует
[Required]
аннотации из файла edmx? - Где лучше всего разместить эти аннотации к данным? Должен ли я изменить файл .tt для создания атрибута [Обязательный]? Или вручную написать частичный класс [MetadataType] и определить атрибуты аннотации данных в отдельном классе?