Language

ChangeTracker.TrackGraph メソッド

定義

オーバーロード

Name 説明
TrackGraph(Object, Action<EntityEntryGraphNode>)

ナビゲーション プロパティを走査して、エンティティと到達可能なエンティティの追跡を開始します。 トラバーサルは再帰的であるため、検出されたエンティティのナビゲーション プロパティもスキャンされます。 検出されたエンティティごとに指定された callback が呼び出され、各エンティティを追跡する State を設定する必要があります。 状態が設定されていない場合、エンティティは追跡されません。

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

ナビゲーション プロパティを走査することで、エンティティと到達可能なエンティティの追跡を開始します。 トラバーサルは再帰的であるため、検出されたエンティティのナビゲーション プロパティもスキャンされます。 検出されたエンティティごとに指定された callback が呼び出され、各エンティティを追跡する State を設定する必要があります。 状態が設定されていない場合、エンティティは追跡されません。

このメソッドは、エンティティがコンテキストの 1 つのインスタンスを使用して取得され、変更がコンテキストの別のインスタンスを使用して保存される、切断されたシナリオで使用するように設計されています。 たとえば、1 つのサービス呼び出しがデータベースからエンティティを取得し、別のサービス呼び出しでエンティティに対する変更が保持される Web サービスがあります。 各サービス呼び出しでは、呼び出しが完了したときに破棄されるコンテキストの新しいインスタンスが使用されます。

通常、グラフのトラバーサルは、既に追跡されているエンティティが検出されたとき、または追跡すべきでないエンティティに到達するたびに停止する必要があります。 この一般的な動作では、 TrackGraph(Object, Action<EntityEntryGraphNode>) オーバーロードを使用します。 一方、このオーバーロードを使用すると、コールバックはトラバーサルがいつ終了するかを決定できますが、トラバーサルが無限ループに入らないようにするために、onus が呼び出し元にあります。

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

ナビゲーション プロパティを走査して、エンティティと到達可能なエンティティの追跡を開始します。 トラバーサルは再帰的であるため、検出されたエンティティのナビゲーション プロパティもスキャンされます。 検出されたエンティティごとに指定された callback が呼び出され、各エンティティを追跡する State を設定する必要があります。 状態が設定されていない場合、エンティティは追跡されません。

TrackGraph(Object, Action<EntityEntryGraphNode>)

ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs

ナビゲーション プロパティを走査して、エンティティと到達可能なエンティティの追跡を開始します。 トラバーサルは再帰的であるため、検出されたエンティティのナビゲーション プロパティもスキャンされます。 検出されたエンティティごとに指定された 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 を設定する必要があります。

注釈

このメソッドは、エンティティがコンテキストの 1 つのインスタンスを使用して取得され、変更がコンテキストの別のインスタンスを使用して保存される、切断されたシナリオで使用するように設計されています。 たとえば、1 つのサービス呼び出しがデータベースからエンティティを取得し、別のサービス呼び出しでエンティティに対する変更が保持される Web サービスがあります。 各サービス呼び出しでは、呼び出しが完了したときに破棄されるコンテキストの新しいインスタンスが使用されます。

コンテキストによって既に追跡されているエンティティが検出された場合、そのエンティティは処理されません (また、そのナビゲーション プロパティは走査されません)。

詳細と例については、 EF Core の変更追跡 を参照してください。

適用対象

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

ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs

ナビゲーション プロパティを走査することで、エンティティと到達可能なエンティティの追跡を開始します。 トラバーサルは再帰的であるため、検出されたエンティティのナビゲーション プロパティもスキャンされます。 検出されたエンティティごとに指定された callback が呼び出され、各エンティティを追跡する State を設定する必要があります。 状態が設定されていない場合、エンティティは追跡されません。

このメソッドは、エンティティがコンテキストの 1 つのインスタンスを使用して取得され、変更がコンテキストの別のインスタンスを使用して保存される、切断されたシナリオで使用するように設計されています。 たとえば、1 つのサービス呼び出しがデータベースからエンティティを取得し、別のサービス呼び出しでエンティティに対する変更が保持される Web サービスがあります。 各サービス呼び出しでは、呼び出しが完了したときに破棄されるコンテキストの新しいインスタンスが使用されます。

通常、グラフのトラバーサルは、既に追跡されているエンティティが検出されたとき、または追跡すべきでないエンティティに到達するたびに停止する必要があります。 この一般的な動作では、 TrackGraph(Object, Action<EntityEntryGraphNode>) オーバーロードを使用します。 一方、このオーバーロードを使用すると、コールバックはトラバーサルがいつ終了するかを決定できますが、トラバーサルが無限ループに入らないようにするために、onus が呼び出し元にあります。

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>

各エンティティの変更追跡情報を構成するデリゲート。 コールバックの 2 番目のパラメーターは、上記で渡された任意の状態オブジェクトです。 コールバックが falseを返した場合、グラフの反復はグラフの下に続くものではありません。

適用対象

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

ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs
ソース:
ChangeTracker.cs

ナビゲーション プロパティを走査して、エンティティと到達可能なエンティティの追跡を開始します。 トラバーサルは再帰的であるため、検出されたエンティティのナビゲーション プロパティもスキャンされます。 検出されたエンティティごとに指定された 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>

各エンティティの変更追跡情報を構成するデリゲート。 コールバックの 2 番目のパラメーターは、上記で渡された任意の状態オブジェクトです。 コールバックが falseを返した場合、グラフの反復はグラフの下に続くものではありません。

注釈

このメソッドは、エンティティがコンテキストの 1 つのインスタンスを使用して取得され、変更がコンテキストの別のインスタンスを使用して保存される、切断されたシナリオで使用するように設計されています。 たとえば、1 つのサービス呼び出しがデータベースからエンティティを取得し、別のサービス呼び出しでエンティティに対する変更が保持される Web サービスがあります。 各サービス呼び出しでは、呼び出しが完了したときに破棄されるコンテキストの新しいインスタンスが使用されます。

通常、グラフのトラバーサルは、既に追跡されているエンティティが検出されたとき、または追跡すべきでないエンティティに到達するたびに停止する必要があります。 この一般的な動作では、 TrackGraph(Object, Action<EntityEntryGraphNode>) オーバーロードを使用します。 一方、このオーバーロードを使用すると、コールバックはトラバーサルがいつ終了するかを決定できますが、トラバーサルが無限ループに入らないようにするために、onus が呼び出し元にあります。

詳細と例については、 EF Core の変更追跡 を参照してください。

適用対象