分离Entity Framework实体是否也分离其子代?

问题描述 投票:0回答:1

我建立了一个ef实体。例如交易修正

                var amendment = _context.TransactionAmendments
                .Include(ta => ta.SourceTransaction)
                    .ThenInclude(ti => ti.Account)
                        .ThenInclude(accnt => accnt.ClientAccount)
                .Include(ta => ta.SourceTransaction)
                    .ThenInclude(ti => ti.Person)
                        .ThenInclude(a => a.Contact)
                .Include(ta => ta.SourceTransaction)
                    .ThenInclude(ti => ti.Client)
                        .ThenInclude(a => a.Holder)
                .FirstOrDefaultAsync(ta => ta.Id == amendmentId);

然后我想重新整理所有信息,因此将amendment的状态设置为分离_context.Entry(amendment).State = EntityState.Detached;

是否还会分离amendment的所有子级,以便当我再次运行上述查询时,所有内容都将被刷新?

c# entity-framework dbcontext
1个回答
0
投票

当您从上下文中分离父实体时,也会禁用子实体的延迟加载。您可以使用Include方法通过Eager Loading加载所需的子级。

快速加载是一种过程,通过该过程,对一种类型的实体的查询也将相关实体作为查询的一部分进行加载。

MSDN中所述:

  • Detach仅影响传递给该方法的特定对象。如果要分离的对象在对象中具有相关的对象上下文中,这些对象不会分离。

  • 分离对象不会影响数据源中的数据。

  • 级联删除指令和引用约束未强制执行在分离操作中。

© www.soinside.com 2019 - 2024. All rights reserved.