0

在我的数据库中,我有一个定义为唯一索引的列。我从数据库生成了我的 EF 模型(我不知道这种独特性是如何转化为模型的。我该如何检查这个?)。
当我尝试使用更新记录中的此字段时

entity.Users.ApplyCurrentValues(user);

我收到以下错误:

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

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

4

1 回答 1

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与检索到的对象一起使用。

于 2013-07-07T23:38:14.573 回答