Не удается обновить запись в Entity Framework 5

#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. Хорошо, я начал ответ и был удален. Спасибо за обновление голосования.