Не работает приложение привязки фреймворка Entity

Я пытаюсь обновить объект POCO, используя инфраструктуру сущности, следующим образом:

 context.Jobs.Attach(job);
 context.SaveChanges();

Это не работает. Ошибка не возникает, она просто не обновляет значения в базе данных.

Я пробовал:

context.Jobs.AttachTo("Jobs", job);
context.SaveChanges();

Ничего плохого, по-прежнему нет ошибок и обновлений.

Ответы

Ответ 2

Я думаю, вы работаете с отдельным объектом - проверьте вторую часть этого ответа.

Ответ 3

вам нужно сначала выполнить задание, после чего вы можете успешно его обновить, chk ниже фрагмента

  var job = context.Jobs.Where(p => p.Id == id).FirstOrDefault();
//apply your changes
job.Title = "XXXX";
///....
context.SaveChanges();

Ответ 4

Другая причина, по которой это может не работать, - это когда соответствующий файл Jobs.cs был зафиксирован, но файл .edmx не имеет. Это означает, что свойство присутствует, но не отображено, и поэтому EF не рассматривает измененный объект. Например:

...
using (var dao = new DbContext())
{
    dao.Jobs.Attach(job);
    job.SomeProperty = 1234; // SomeProperty exists but is not in the .edmx
    dao.SaveChanges();
}

если SomeProperty присутствует в Jobs.cs, но отсутствует в файле .edmx, этот код будет компилироваться и выполняться без подсказки, что что-то не так, но SomeProperty не будет обновляться в базе данных. Принесли мне лучшую часть дня, чтобы найти этот.