更新唯一的非主键

时间:2013-07-07 21:33:06

标签: c# entity-framework entity-framework-4 unique-key

在我的数据库中,我将列定义为唯一索引。我从DB生成了我的EF模型(我不知道这个唯一性是如何转换为模型的。我如何检查这个?)。
当我尝试使用

更新记录中的此字段时
entity.Users.ApplyCurrentValues(user);

我收到以下错误:

  

具有与所提供对象的键匹配的键的对象可以   在ObjectStateManager中找不到。验证密钥值   提供的对象匹配对象的键值   必须应用更改。

如何更新唯一(非主要!)字段?

1 个答案:

答案 0 :(得分:0)

我们必须看到更多代码来确定您获取user对象的位置,以便更清楚地了解正在发生的事情。

我相信ApplyCurrentValues用于更新对ObjectContext中已存在的对象所做的更改;如果您最初没有从上下文中获取user实例,则会收到上述错误(错误告诉您它无法找到您尝试更新的对象)。

MSDNCopies the scalar values from the supplied object into the object in the ObjectContext that has the same key.

如果您的Attach()是分离的对象,或者您可以从此上下文中加载user,然后使用user,则可能ApplyCurrentValues {{1}}与检索到的对象。