EntityFramework Update不会进行更改

时间:2012-02-16 13:52:45

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

运行下面的代码后,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();
        }
    }

3 个答案:

答案 0 :(得分:3)

错误的是保存没有变化。您收到了来自数据库的itemToUpdate,并且在您使用参考项目替换数据之后 - EF从未知道您所做的任何更改,因为将item分配给itemToUpdate不会产生任何结果。而是指定尝试使用:

context.Items.ApplyCurrentValues(item);

答案 1 :(得分:2)

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

答案 2 :(得分:0)

你正在处理引用...而不是映射属性,而不是想改变指针就行了!