Проверка модели: получение всех правил, зарегистрированных Entity Framework 4.1

#.net #c#-4.0 #entity-framework-4.1

#.net #c #-4.0 #entity-framework-4.1

Вопрос:

Я использую подход, ориентированный на базу данных, с EF4.1. Когда я вызываю GetValidationErrors() DbContext, EF проверяет все объекты, которые были присоединены к контексту, и пока все в порядке.

Мой вопрос заключается в том, есть ли возможность получить все зарегистрированные правила проверки данной модели EF перед проведением самой проверки? Я хотел бы обработать и предоставить их моему интерфейсному клиенту особым образом.

EF извлекает эти правила, вероятно, из метаданных CSDL данного объекта. У кого-нибудь есть подсказка, как я могу получить к ним доступ?

спасибо

Комментарии:

1. Отражение? Рефлектор на помощь…

2. Я бы хотел, чтобы кто-нибудь ответил на это … кхм!!!

3. @Raj Я нашел ответ или, по крайней мере, приемлемое решение. Я постараюсь опубликовать его в ближайшие дни …. в настоящее время довольно занят

4. Хорошо, держи меня в курсе, Юрий! Спасибо.

Ответ №1:

Вы можете использовать отражение для перебора свойств модели и получения различных атрибутов аннотаций данных. Вы можете проверить специально для ValidationAttribute .

Не уверен, насколько это было бы полезно, если только вы явно не хотите проверять наличие определенных атрибутов (т. Е. RangeAttribute и его специфические свойства, такие как Maximum и Minimum). Это не будет работать с пользовательскими атрибутами валидатора, поскольку вы понятия не имеете, что проверять…