我建立了一个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
的所有子级,以便当我再次运行上述查询时,所有内容都将被刷新?
当您从上下文中分离父实体时,也会禁用子实体的延迟加载。您可以使用Include
方法通过Eager Loading
加载所需的子级。
快速加载是一种过程,通过该过程,对一种类型的实体的查询也将相关实体作为查询的一部分进行加载。
如MSDN中所述:
Detach仅影响传递给该方法的特定对象。如果要分离的对象在对象中具有相关的对象上下文中,这些对象不会分离。
分离对象不会影响数据源中的数据。
级联删除指令和引用约束未强制执行在分离操作中。