忽略 SaveChanges() 上的引用对象
本文关键字:引用 对象 SaveChanges 忽略 | 更新日期: 2023-09-27 18:35:31
>我有一个可以生成多个订单的应用程序。在第一次运行时,这工作得很好,但是当我创建第二个订单并尝试将其保存到数据库中时,我收到一个错误,指出 ObjectStateManager 中已经存在具有相同键的对象。
我怀疑这不是因为新创建的订单对象,而是因为持有的引用。但即便如此,鉴于合并选项是 AppendOnly,这些附加的对象应该在 SaveChanges() 调用中被忽略。
生成订单对象的代码如下:
public void GenerateOrder(){
Order order = new Order();
order.Items.Add(item1);
order.Items.Add(item2);
}
public void AddOrder(Order order){
_context.Orders.Add(order);
_context.SaveChanges();
}
我现在通过清除上下文的缓存来解决它。我认为问题是由我正在使用长期上下文这一事实引起的,因此某些对象未正确处理。
public void ClearEntityCache(){
_context.Dispose();
_context = new EntityContext();
}