Я использую Entity Framework 4 и сайт динамических данных, чтобы предоставить доступ к простому интерфейсу администратора нескольким пользователям.В целом работает довольно хорошо, но я столкнулся с этой одной проблемой на нескольких полях моей модели.
В некоторых таблицах есть поля, связанные с аудитом - CreatedBy, CreatedDate, ModifiedBy и ModifiedDate.Эти поля являются обязательными в базе данных, и соответствующие модели помечают свойства как необнуляемые (все как и должно быть).Однако я передаю установку значений для этих полей в коде - шаблоны полей для типов полей помечают эти конкретные поля как отключенные на странице, и в событии SavingChanges я устанавливаю эти поля в соответствующие значения.Все работает отлично , когда я обновляю существующий элемент.
Проблема возникает, когда я пытаюсь создать новый элемент.Я хочу, чтобы эти поля оставались пустыми на странице и автоматически заполнялись моим кодом при отправке, но шаблоны полей настраивали RequiredFieldValidators для этих полей и не позволяли мне отправлять их без значения.Обычно это было бы здорово, за исключением того, что я хочу помешать EF проверять эти поля в момент отправки страницы.
Я понимаю, что могу пометить поля в базе данных как обнуляемые, и это решит проблему -это, вероятно, было бы даже хорошо с точки зрения данных, но мне это неудобно - во-первых, не исключено, что некоторые из моделей, в которых появляются эти поля, будут загружены в массовом порядке, возможно, кем-то другим, позжеДата.Я бы предпочел, чтобы база данных обеспечивала необнуляемость этих полей.В шаблонах полей я попытался переместить встроенный вызов SetUpValidator (), чтобы RequiredFieldValidator не выполнялся, когда эти конкретные поля загружаются, и я также попытался отключить RequiredFieldValidators и заставить их свойство IsValid иметь значение true.Ни одно из этих действий не позволяет мне отправить страницу.
Есть ли способ заставить EF / Dynamic Data пропустить проверку для некоторых полей?
EDIT
Как отмечено ниже, я также попытался пометить их как обнуляемые в модели, а не в базе данных, что вызвало ошибку: Problem in mapping fragments...Non-nullable column...in table...is mapped to a nullable entity property.
EDIT # 2
Я нашел решение, которое работает, но требует изменения автоматически сгенерированного файла конструктора для набора сущностей, который в лучшем случае хрупок.Мне бы хотелось узнать «правильный» способ сделать это, но если ничего не станет очевидным в ближайшие пару дней, я отправлю свой ответ.