我们一直在构建一个包含 2 个部分的应用程序。 服务器端: WCF 服务,客户端:遵循 MVVM 模式的 WPF 应用程序
所以我们也使用自我跟踪实体来完成一些数据库工作,但我们遇到了困难。
这是一个示例代码:
public bool UpdateUser(User userToUpdate)
{
using (DBContext _context = new DBContext())
{
try
{
userToUpdate.MarkAsModified();
_context.Users.ApplyChanges(userToUpdate);
_context.SaveChanges();
return true;
}
catch (Exception ex)
{
// LOGS etc.
return false;
}
}
}
所以当我从客户端调用这个函数时,它给了我们这个异常:
AcceptChanges 无法继续,因为对象的键值与 ObjectStateManager 中的另一个对象冲突。在调用 AcceptChanges 之前确保键值是唯一的。
“用户”实体有一个“多对 1..0 (UserType)”和五个“0..1 对多”关联。并且“UserType”具有“多对多(模块)”关联。
当我们向这个函数发送一个 User 实例时,UserType 包含在它的模块中。
如果你能指导我解决这个问题,那就太好了。
谢谢你。