当前位置 : 首页 » 互动问答 » 正文

EF Core子实体自动添加到父级

分类 : 互动问答 | 发布时间 : 2018-04-27 17:31:43 | 评论 : 1 | 浏览 : 38 | 喜欢 : 0

我有一个关于EF核心的一些(对我来说)奇怪的行为的问题:

以下面的代码为例:

 efOrder = _context.Orders.ActiveOnly()。FirstOrDefault(ord => ord.Id == id ); // ActiveOnly()过滤掉我的软删除订单
//这里没有订单
_context.Set <OrderLine>()。RemoveRange(_context.OrderLine.ActiveOnly()。Where(ol => ol.OrderId == efOrder.Id));
//在这里efOrder的突然排序

当我没有将efOrder添加到OrderLines时,为什么现在突然有efOrder? 由于偶尔会导致关联错误,因此如何防止此行为?

回答(1)

  • 1楼
  • 解决方案是运行查询而不跟踪查找查询;

     efOrder = _context.Orders.ActiveOnly()。FirstOrDefault(ord => ord.Id == id);
    // ActiveOnly()过滤掉我的软删除订单
    //这里没有订单
    _Context.Set <OrderLine>()。RemoveRange(_context.OrderLine.AsNoTracking()。ActiveOnly()。Where(ol => ol.OrderId == efOrder.Id));
    //不添加命令行
    

    感谢您的帮助。

相关阅读: