【问题标题】:EntityFramework Update will not make the changeEntityFramework Update 不会做出改变
【发布时间】:2012-02-16 13:52:44
【问题描述】:

运行下面的代码后,item.Name 仍然显示“New Item”。

这里有什么问题?

item.Name = "Updated Item";

items.Update(item);

public void Update(Item item)
    {
        using (var context = new wirvar_masterEntities())
        {
            var key = new EntityKey("wirvar_masterEntities.Items", "ID", item.ID);

            var itemToUpdate = (Item)context.GetObjectByKey(key);

            if (itemToUpdate == null) return;
            itemToUpdate = item;

            context.SaveChanges();
        }
    }

【问题讨论】:

    标签: c# asp.net entity-framework entity-framework-4


    【解决方案1】:

    错误是没有要保存的更改。您从数据库中收到了 itemToUpdate,并且在数据之后您参考项目替换了它 - EF 从来不知道您所做的任何更改,因为将 item 分配给 itemToUpdate 没有任何意义。而是分配尝试使用:

    context.Items.ApplyCurrentValues(item);
    

    【讨论】:

      【解决方案2】:

      为此,请在执行GetObjectKey 之后尝试对象上下文上的ApplyCurrentValues 方法。然后所有的值都应该更新。

      【讨论】:

        【解决方案3】:

        您正在处理引用...而不是映射属性,而不是认为更改指针会做到这一点!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-08-14
          • 2010-12-01
          • 2021-05-01
          • 2017-08-28
          • 2019-07-22
          • 1970-01-01
          • 2018-08-09
          • 1970-01-01
          相关资源
          最近更新 更多