我在 WCF 上使用带有自跟踪实体的实体框架。
我有 2 个实体,客户和 PriceMatrix 具有多对多关系(客户可以有许多历史价格矩阵,并且可以在一组客户之间共享一个矩阵)
客户端有一个单一的 PriceMatrix,它更新并发送回服务器。服务器需要检查此 PriceMatrix 是否在其他客户之间共享,然后再选择更新它,或者复制它并更新副本。
我遇到的问题是,因为我在附加更新的 PriceMatrix 之前加载了 PriceMatrix 以检查它,所以当我调用 ApplyChanges() 时出现以下错误。
“AcceptChanges 无法继续,因为对象的键值与 ObjectStateManager 中的另一个对象冲突。在调用 AcceptChanges 之前,请确保键值是唯一的。”
如果我注释掉我的检查(因此不加载 PriceMatrix)一切正常。
我真正想做的是,在检查其状态后,卸载 PriceMatrix,然后附加我从客户端收到的更新的 PriceMatrix。