Entity framework 更新记录EF不工作
为什么这不在数据库中更新,但注释掉的版本可以工作Entity framework 更新记录EF不工作,entity-framework,entity-framework-6,Entity Framework,Entity Framework 6,为什么这不在数据库中更新,但注释掉的版本可以工作 public bool InsertOrUpdateItems(Items item) { using (var dbContext = new MyEntities()) { var items = dbContext.Items.Find(item.ItemId); if (items != null)
public bool InsertOrUpdateItems(Items item)
{
using (var dbContext = new MyEntities())
{
var items = dbContext.Items.Find(item.ItemId);
if (items != null)
{
dbContext.Items.Attach(items);
dbContext.Entry(items).State = EntityState.Modified;
//dbContext.Entry(items).CurrentValues.SetValues(item);
dbContext.SaveChanges();
}
没有抛出异常,只是不会更新。即使找到了记录。如果有问题的行被注释掉,也没有新的值要更新。请注意,您:
项的对象
项目
作为InsertOrUpdateItems方法(
item
)的参数传递的对象在代码中甚至不会被触及,除了读取其Id以用于Find()之外这些值不是在更新简单属性或更大对象图的一部分吗?简单值会发生变化——这些变化会反映在传入的“item”变量中。注释掉的行是有效的,我发现作为一种解决方法,我从未使用过CurrentValues属性。好的,您在哪里使用代码第一行中的objectitem
?除了注释掉的行之外,没有其他地方。这就是为什么它只适用于这条线是的,我看到了,现在要检查一下