2010-05-04 3 views
6

Мне было интересно, какая общая рекомендация для Entity Framework с точки зрения проверки данных. Я относительно новичок в EF, но, похоже, существуют два основных подхода к проверке данных.Лучшие практики - аннотации данных против OnChanging в Entity Framework 4

Первый - создать частичный класс для модели, а затем выполнить проверку данных и обновить коллекцию нарушений правил. Это описано в http://msdn.microsoft.com/en-us/library/cc716747.aspx

Другое - использовать аннотации данных, а затем аннотации выполнять проверку данных. Скотт Гатри объясняет это в своем блоге на http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx.

Мне было интересно, что преимущества одного над другим. Похоже, что аннотации данных будут предпочтительным механизмом, тем более, что вы перейдете на RIA Services, но я хочу, чтобы я ничего не пропустил. Разумеется, ничто не мешает использовать их вместе.

Благодаря

Джон

ответ

1

Я использую DataAnnotations с использованием MVC 2 и он прекрасно работает. Я не пробовал частичное на объекте сущности для проверки, но я вижу его использование. В принципе, если я создаю частичный класс объекта сущности, я использую его для данных по умолчанию, таких как идентификатор GUID. или Создать дату или измененную дату. Я думаю, было бы полезно добавить проверки в частичный класс, возможно, для некоторой комплексной проверки, которая должна произойти на уровне сущности, но даже тогда эти проверки могут быть выполнены в пользовательском валидаторе. Если вы используете веб-сайт MVC, я бы лично использовал dataannotations.

+0

Что вы думаете о проблеме, поднятой Брэдом Уилсоном здесь? Думаю, я борюсь с аннотациями данных, поскольку они кажутся слишком много волшебства :) http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet- mvc.html –

+0

Прежде всего позвольте мне поблагодарить вас за указание этой статьи. Это было хорошо. Это информативная статья о том, как и почему изменение дизайна от проверки ввода было изменено в MVC1.0 для проверки модели. Его баллы действительны и должны учитываться на этапе проектирования. Наконец, аннотации данных не являются волшебными, они являются атрибутами свойств, которые вы применяете, что заставляет код проверки для запуска при привязке к вашей модели. –

+0

Эта ссылка объясняет, что я надеялся сделать .... http://daniel.wertheim.se/2009/11/18/entity-framework-4-part-5-validation-using-dataannotations/ Интеграция аннотаций данных с уровнем обслуживания. У меня возникли некоторые проблемы, потому что я разрабатываю Azure, а среда 3.5 не поддерживает Validator.TryValidateObject. DOH! Спасибо –

Смежные вопросы