我有一个使用ADO.NET实体框架的.NET 4 WinForms应用程序。一些完美工作的代码已经决定停止工作,尽管我试图找出可能导致这种情况的变化,但我很难过。这段代码对我来说功能完全正常,而且WAS按预期工作。ADO.NET实体框架SaveChanges不起作用
任何人有任何想法?下面是代码:
using (var pe = new ProposalEstimateEntities())
{
var tmc = GetToolingAndMaterialsCost(taskId, Constants.Materials);
if (tmc == null) return;
tmc.Amount = amount;
pe.SaveChanges();
}
的TMC变量保存在方法调用后ToolingAndMaterialsCost实体对象,所以没有必要将对象添加到上下文。 SaveChanges()应该用新金额保存对象,但不保存。没有例外被抛出。代码执行起来很愚蠢,很快乐,但是数据库没有任何变化,当我返回到显示数据的控件时,旧的预编辑数据就在那里。
这是非常令人沮丧的,任何帮助将不胜感激。
迈克
正确,用于加载实体的上下文不同于SaveChanges调用中使用的上下文。我将tmc对象添加到该上下文,并且工作正常。 – flyfisher1952 2010-10-26 19:23:35