0
Я пытаюсь обновить объект, используя первый подход Entity Framework 4.1 Code. Я пользуюсь следующим кодом:Обновление объекта с использованием Entity Framework 4.1
public void UpdatePersonEmail(long registryID, string Email) {
var Person = context.Persons.FirstOrDefault(p => p.RegistryID == registryID);
// Person = person;
Person.Email = Email;
try
{
context.Persons.Attach(Person);
context.Entry(Person).State = System.Data.EntityState.Modified;
context.SaveChanges();
}
catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
}
}
}
}
Код не содержит ошибок, но сущность не обновляется. Я просто хочу обновить адрес электронной почты.
Пожалуйста, предложите мне решение.
Попробуйте запустить sql-трассировку с БД, чтобы увидеть, что действительно отправлено. Кроме того, вам не нужно прикладывать его к контексту, поскольку у вас уже есть объект Person из контекста. EF выяснит, что изменилось. – ericvg
Я вижу, что нет ошибки с 'context.SaveChanges();' все изменения сохраняются. Попробуйте удалить строку 'context.Entry (Person) .State = System.Data.EntityState.Modified;'. Я не вижу смысла в этой линии. – rekire
@rekire Я удалил его, но все же он не работает –