[英]EF Core child entities automatically added to parent
我对EF Core中的某些(对我而言)奇怪的行为有疑问:
以下面的代码为例:
efOrder = _context.Orders.ActiveOnly().FirstOrDefault(ord => ord.Id == id); //ActiveOnly() filters out my soft deleted orders
//No orderlines here
_context.Set<OrderLine>().RemoveRange(_context.OrderLine.ActiveOnly().Where(ol => ol.OrderId == efOrder.Id));
//sudden orderlines on efOrder here
当我没有将efOrder
添加到efOrder
时,为什么我的efOrder
现在突然有了OrderLines
? 因为这偶尔会导致严重的关联错误,如何防止这种行为?
解决方案是在不跟踪查询的情况下运行查询。
efOrder = _context.Orders.ActiveOnly().FirstOrDefault(ord => ord.Id == id);
//ActiveOnly() filters out my soft deleted orders
//No orderlines here
_context.Set<OrderLine>().RemoveRange(_context.OrderLine.AsNoTracking().ActiveOnly().Where(ol => ol.OrderId == efOrder.Id));
//Orderlines are not added
谢谢您的帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.