2012-05-03 4 views
1

Я экспериментирую с обновлением свойств объекта без получения сущности сначала из базы данных.DbContext только проверяет измененные свойства

Проблема заключается только в том, что я хочу обновить некоторые свойства, и проверка подлинности объекта жалуется на то, что значения, не содержащие значения NULL, не были заполнены, даже если я их не обновляю.

Является ли мой единственный вариант поворота валидатора?

Я бы предпочел не включать валидатор, поскольку я хотел бы проверить свойства, которые я обновляю.

TestContext context = new TestContext(); 

LearningResource learningResource = new LearningResource(); 

learningResource.LearningResourceID = 132; 


DbEntityEntry<LearningResource> entry = context.Entry(learningResource); 

context.LearningResources.Attach(learningResource); 

entry.State = EntityState.Unchanged; 

learningResource.Title = "alex"; 

entry.Property(e => e.Title).IsModified = true; 

//Only seems to work if I do this. 
//context.Configuration.ValidateOnSaveEnabled = false; 

context.SaveChanges(); 

ответ

2

То, что "a feature". Вы должны отключить глобальную проверку и проверить каждое измененное свойство отдельно.

var result = entry.Property(e => e.Title).GetValidationResult(); 

Я также не понимаю, почему это не происходит из коробки.

+0

Thanks @Ladislav –

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