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属性。好的,您在哪里使用代码第一行中的object
    item
    ?除了注释掉的行之外,没有其他地方。这就是为什么它只适用于这条线是的,我看到了,现在要检查一下