Мы используем EF 4.0 с первым подходом к коду. Я определил ограничение для длины свойства, используя атрибут StringLength. У меня сложилось впечатление, что SaveChanges for Context, который отслеживает сущность с данными, длина которых превышает указанное ограничение, вызовет исключение проверки.
Но, к сожалению, этого не произошло. Если я делаю GetValidationErrors () до SaveChanges, я вижу там ожидаемую ошибку. Может кто-нибудь пролить свет на то, как этот материал должен работать?
Обновление: найдено, где проблема. Чтобы отследить сущности, которые будут затронуты SaveChanges, мы используем базовый ObjectContext DBContext (через IObjectContextAdapter). SaveChanges был вызван для ObjectContext, когда я переключился на DBContext.SaveChanges проблема была решена.