ChangeTracker.TrackGraph 方法

定义

重载

TrackGraph(Object, Action<EntityEntryGraphNode>)

开始跟踪实体以及通过遍历其导航属性可访问的任何实体。 遍历是递归的,因此还将扫描任何发现的实体的导航属性。 为每个发现的实体调用指定的 callback ,并且必须设置 State 应跟踪每个实体的 。 如果未设置任何状态,则实体将保持未跟踪状态。

TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode<TState>,Boolean>)

开始跟踪实体以及通过遍历其导航属性可访问的任何实体。 遍历是递归的,因此还将扫描任何发现的实体的导航属性。 为每个发现的实体调用指定的 callback ,并且必须设置 State 应跟踪每个实体的 。 如果未设置任何状态,则实体将保持未跟踪状态。

TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode,TState,Boolean>)

开始通过遍历实体的导航属性来跟踪实体和可访问的任何实体。 遍历是递归的,因此还将扫描任何发现的实体的导航属性。 为每个发现的实体调用指定的 callback ,并且必须设置 State 应跟踪每个实体的 。 如果未设置任何状态,则实体将保持未跟踪状态。

此方法设计用于使用上下文的一个实例检索实体,然后使用上下文的不同实例保存更改的断开连接方案。 Web 服务的示例是一个 Web 服务,其中一个服务调用从数据库检索实体,另一个服务调用保留对实体的任何更改。 每个服务调用都使用在调用完成时释放的上下文的新实例。

通常,每当遇到已跟踪的实体或到达不应跟踪的实体时,图形的遍历应停止。 对于此典型行为,请使用 TrackGraph(Object, Action<EntityEntryGraphNode>) 重载。 另一方面,此重载允许回调决定遍历何时结束,但该重载位于调用方上,以确保遍历不会进入无限循环。

TrackGraph(Object, Action<EntityEntryGraphNode>)

开始跟踪实体以及通过遍历其导航属性可访问的任何实体。 遍历是递归的,因此还将扫描任何发现的实体的导航属性。 为每个发现的实体调用指定的 callback ,并且必须设置 State 应跟踪每个实体的 。 如果未设置任何状态,则实体将保持未跟踪状态。

public virtual void TrackGraph (object rootEntity, Action<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntryGraphNode> callback);
abstract member TrackGraph : obj * Action<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntryGraphNode> -> unit
override this.TrackGraph : obj * Action<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntryGraphNode> -> unit
Public Overridable Sub TrackGraph (rootEntity As Object, callback As Action(Of EntityEntryGraphNode))

参数

rootEntity
Object

要从中开始遍历的实体。

callback
Action<EntityEntryGraphNode>

用于为每个实体配置更改跟踪信息的操作。 若要开始跟踪实体, State 必须设置 。

注解

此方法设计用于使用上下文的一个实例检索实体,然后使用上下文的不同实例保存更改的断开连接方案。 Web 服务的示例是一个 Web 服务,其中一个服务调用从数据库检索实体,另一个服务调用保留对实体的任何更改。 每个服务调用都使用在调用完成时释放的上下文的新实例。

如果发现已由上下文跟踪的实体,则不会 (处理该实体,并且不会) 遍历其导航属性。

有关详细信息和示例,请参阅 EF Core 更改跟踪

适用于

TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode<TState>,Boolean>)

开始跟踪实体以及通过遍历其导航属性可访问的任何实体。 遍历是递归的,因此还将扫描任何发现的实体的导航属性。 为每个发现的实体调用指定的 callback ,并且必须设置 State 应跟踪每个实体的 。 如果未设置任何状态,则实体将保持未跟踪状态。

public virtual void TrackGraph<TState> (object rootEntity, TState state, Func<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntryGraphNode<TState>,bool> callback);
public virtual void TrackGraph<TState> (object rootEntity, TState? state, Func<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntryGraphNode<TState>,bool> callback);
abstract member TrackGraph : obj * 'State * Func<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntryGraphNode<'State>, bool> -> unit
override this.TrackGraph : obj * 'State * Func<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntryGraphNode<'State>, bool> -> unit
Public Overridable Sub TrackGraph(Of TState) (rootEntity As Object, state As TState, callback As Func(Of EntityEntryGraphNode(Of TState), Boolean))

类型参数

TState

状态对象的类型。

参数

rootEntity
Object

要从中开始遍历的实体。

state
TState

传递给回调的任意状态对象。

callback
Func<EntityEntryGraphNode<TState>,Boolean>

一个委托,用于为每个实体配置更改跟踪信息。 回调的第二个参数是上面传递的任意状态对象。 如果回调返回 false,则图的迭代不会继续向下。

注解

此方法设计用于使用上下文的一个实例检索实体,然后使用上下文的不同实例保存更改的断开连接方案。 Web 服务的示例是一个 Web 服务,其中一个服务调用从数据库检索实体,另一个服务调用保留对实体的任何更改。 每个服务调用都使用在调用完成时释放的上下文的新实例。

通常,每当遇到已跟踪的实体或到达不应跟踪的实体时,图形的遍历应停止。 对于此典型行为,请使用 TrackGraph(Object, Action<EntityEntryGraphNode>) 重载。 另一方面,此重载允许回调决定遍历何时结束,但该重载位于调用方上,以确保遍历不会进入无限循环。

有关详细信息和示例,请参阅 EF Core 更改跟踪

适用于

TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode,TState,Boolean>)

开始通过遍历实体的导航属性来跟踪实体和可访问的任何实体。 遍历是递归的,因此还将扫描任何发现的实体的导航属性。 为每个发现的实体调用指定的 callback ,并且必须设置 State 应跟踪每个实体的 。 如果未设置任何状态,则实体将保持未跟踪状态。

此方法设计用于使用上下文的一个实例检索实体,然后使用上下文的不同实例保存更改的断开连接方案。 Web 服务的示例是一个 Web 服务,其中一个服务调用从数据库检索实体,另一个服务调用保留对实体的任何更改。 每个服务调用都使用在调用完成时释放的上下文的新实例。

通常,每当遇到已跟踪的实体或到达不应跟踪的实体时,图形的遍历应停止。 对于此典型行为,请使用 TrackGraph(Object, Action<EntityEntryGraphNode>) 重载。 另一方面,此重载允许回调决定遍历何时结束,但该重载位于调用方上,以确保遍历不会进入无限循环。

public virtual void TrackGraph<TState> (object rootEntity, TState state, Func<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntryGraphNode,TState,bool> callback);
abstract member TrackGraph : obj * 'State * Func<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntryGraphNode, 'State, bool> -> unit
override this.TrackGraph : obj * 'State * Func<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntryGraphNode, 'State, bool> -> unit
Public Overridable Sub TrackGraph(Of TState) (rootEntity As Object, state As TState, callback As Func(Of EntityEntryGraphNode, TState, Boolean))

类型参数

TState

状态对象的类型。

参数

rootEntity
Object

要从中开始遍历的实体。

state
TState

传递给回调的任意状态对象。

callback
Func<EntityEntryGraphNode,TState,Boolean>

一个委托,用于为每个实体配置更改跟踪信息。 回调的第二个参数是上面传递的任意状态对象。 如果回调返回 false,则图的迭代不会继续向下。

适用于