Проверка модели с помощью Entity Framework

У меня есть класс модели Entity Framework, в котором есть представление для создания экземпляра этого класса модели. Я хотел проверить даты в этом классе, чтобы пользователи добавляли даты, соответствующие определенным критериям. У меня есть класс метаданных, который использует атрибуты из пространств имен System.ComponentModel и System.ComponentModel.DataAnnotations.

Есть ли какой-либо атрибут оттуда, который я могу использовать для выполнения проверки, или есть ли другой способ сделать это?


person Sachin Kainth    schedule 11.06.2012    source источник
comment
Трудно сказать без подробностей/примеров. Я полагаю, вы имеете в виду, что они являются ограничениями на ваши возможные даты, исходя из разных свойств вашей модели? Если это так (и даже если нет), я бы взглянул на FluentValidation fluentvalidation.codeplex.com.   -  person Raphaël Althaus    schedule 11.06.2012
comment
Все дело в том, что у меня есть две даты - дата начала и дата окончания = дата начала должна быть раньше даты окончания - вот и все - я просто не знаю, куда поместить этот код.   -  person Sachin Kainth    schedule 11.06.2012
comment
Поэтому вам понадобится CustomValidationAttribute, поскольку существующие атрибуты не знают своего объекта (каждое свойство не имеет представления о других свойствах экземпляра). Или используйте FluentValidation. Или используйте Fluentvalidation. Или используйте FluentValidation. ;)   -  person Raphaël Althaus    schedule 11.06.2012
comment
:-). Я думаю, что тогда я мог бы использовать FluentValidation :-)   -  person Sachin Kainth    schedule 11.06.2012
comment
@dskh хм. Хороший вопрос - не знаю, как я могу это сделать, хотя   -  person Sachin Kainth    schedule 11.06.2012
comment
@RaphaëlAlthaus Я не могу заставить FluentValidation работать. Он не распознает атрибут Validator. Я использую fluentvalidation.codeplex.com/wikipage?title=mvc.   -  person Sachin Kainth    schedule 11.06.2012
comment
Вы загрузили FluentValidation, прочитали документ, добавили ссылки в свой проект (FluentValidation.dll), использовали правильное использование (using FluentValidation;) за столь короткое время? (шучу, но где-то должна быть отсутствующая ссылка/использование).   -  person Raphaël Althaus    schedule 11.06.2012
comment
@RaphaëlAlthaus Я использую FluentValidation.Mvc;   -  person Sachin Kainth    schedule 11.06.2012
comment
@RaphaëlAlthaus Я все разобрал - пожалуйста, напишите быстрый ответ, чтобы я мог пометить его как ответ   -  person Sachin Kainth    schedule 11.06.2012


Ответы (2)


Вам понадобится CustomValidationAttribute, так как существующие атрибуты не знают своего «объекта» (каждое свойство не имеет понятия о других свойствах экземпляра).

Но мой выбор пал на FluentValidation, который имеет приятный плавный интерфейс и дает вам возможность взаимодействовать со свойствами объекта для проверки.

http://fluentvalidation.codeplex.com

person Raphaël Althaus    schedule 11.06.2012

Вы можете использовать CustomValidationAttribute для любой дополнительной проверки. Однако вам придется немного потрудиться, если вам нужна проверка на стороне клиента!

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.customvalidationattribute.aspx

person Richard    schedule 11.06.2012