У меня есть приложение .NET 4 WinForms, которое использует ADO.NET Entity Framework. Некоторый код, который работал отлично, решил прекратить работать, и хотя я попытался выяснить, что изменилось, что может вызвать это, я в тупике. Этот код выглядит совершенно функционально для меня, и он работает по назначению.ADO.NET Entity Framework SaveChanges не работает
У кого-нибудь есть идеи? Вот код:
using (var pe = new ProposalEstimateEntities())
{
var tmc = GetToolingAndMaterialsCost(taskId, Constants.Materials);
if (tmc == null) return;
tmc.Amount = amount;
pe.SaveChanges();
}
Переменная ТМС держит объект сущности ToolingAndMaterialsCost после вызова метода, так что нет никакой необходимости, чтобы добавить объект к контексту. SaveChanges() должен сохранить объект с новой суммой, но это не так. Никакое исключение не выбрасывается. Код исполняется, как будто он немой и счастлив, но ничего не меняется в базе данных, и когда я возвращаюсь к элементу управления, который отображает данные, есть старые данные предварительного редактирования.
Это очень расстраивает, любая помощь будет принята с благодарностью.
Майк
Правильно, контекст, используемый для загрузки объекта, отличается от контекста, используемого при вызове SaveChanges. Я добавил объект tmc в этот контекст, и он сработал. – flyfisher1952