#asp.net-mvc #entity-framework #entity-framework-5
#asp.net-mvc #entity-framework #entity-framework-5
Вопрос:
У меня есть следующий метод в репозитории, и мне нужно обновить объект. К сожалению, я не могу обновить запись (сообщение об ошибках отсутствует).
Есть идеи, что я делаю не так?
public void Update(GaLocation entity)
{
context.GaLocations.Attach(entity);
context.Entry(entity).State = EntityState.Modified;
context.SaveChanges();
}
Комментарии:
1. Что происходит, когда вы выполняете ТРАССИРОВКУ в базе данных. Вы видите, что что-нибудь отправляется в базу данных?
2. установлен ли pk объекта?
Ответ №1:
Вот как я обновляю записи:
public void Update(GaLocation entity)
{
GaLocation gl = context.GaLocations.Where(h=>h.id == entity.id).FirstOrDefault();
gl.val1 = entity.val1;
gl.val2 = entity.val2;
//etc
context.SaveChanges();
}
Я пробовал использовать Attach
, но и с этим у меня возникли проблемы. Я уверен, что это работает, но этот способ сработал лучше для меня.
Комментарии:
1. @Dismissile
gl
Контекст отслеживается, поэтому, когда вы его обновляете, а затем вызываете.SaveChanges()
, он обновляет базу данных, потому что контекст знает, что он изменился. Аналогично: entityframeworktutorial.net /…2. Хорошо, я начал ответ и был удален. Спасибо за обновление голосования.