語言

ChangeTracker.TrackGraph 方法

定義

多載

名稱 Description
TrackGraph(Object, Action<EntityEntryGraphNode>)

開始追蹤一個實體及其可透過其導航屬性抵達的實體。 遍歷是遞迴的,因此任何發現的實體的導航屬性也會被掃描。 指定callback值會為每個發現的實體呼叫,並必須設定每個實體應該被追蹤的 。State 若未設定狀態,該實體將保持不被追蹤。

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

開始追蹤一個實體及其可達的實體,透過遍歷其導航屬性。 遍歷是遞迴的,因此任何發現的實體的導航屬性也會被掃描。 指定callback值會為每個發現的實體呼叫,並必須設定每個實體應該被追蹤的 。State 若未設定狀態,該實體將保持不被追蹤。

此方法設計用於斷開情境,即先用一個上下文實例檢索實體,然後在另一個上下文實例中儲存變更。 例如,一個網路服務中,一個服務呼叫從資料庫中擷取實體,另一個服務呼叫則持續存在實體的任何變更。 每個服務呼叫都會使用一個新的上下文實例,當通話結束時會被處置。

通常,當遇到已追蹤的實體或不該追蹤的實體時,圖表的遍歷應該停止。 針對這種典型行為,使用過載。TrackGraph(Object, Action<EntityEntryGraphNode>) 這種過載則讓回撥決定穿越何時結束,但責任落在呼叫者身上,確保穿越不會進入無限迴圈。

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

備註

此方法設計用於斷開情境,即先用一個上下文實例檢索實體,然後在另一個上下文實例中儲存變更。 例如,一個網路服務中,一個服務呼叫從資料庫中擷取實體,另一個服務呼叫則持續存在實體的任何變更。 每個服務呼叫都會使用一個新的上下文實例,當通話結束時會被處置。

如果發現一個已被上下文追蹤的實體,該實體不會被處理(其導航屬性也不會被遍歷)。

更多資訊與範例請參閱 EF Core 變更追蹤 。

適用於

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

來源:
ChangeTracker.cs
來源:
ChangeTracker.cs

開始追蹤一個實體及其可達的實體,透過遍歷其導航屬性。 遍歷是遞迴的,因此任何發現的實體的導航屬性也會被掃描。 指定callback值會為每個發現的實體呼叫,並必須設定每個實體應該被追蹤的 。State 若未設定狀態,該實體將保持不被追蹤。

此方法設計用於斷開情境,即先用一個上下文實例檢索實體,然後在另一個上下文實例中儲存變更。 例如,一個網路服務中,一個服務呼叫從資料庫中擷取實體,另一個服務呼叫則持續存在實體的任何變更。 每個服務呼叫都會使用一個新的上下文實例,當通話結束時會被處置。

通常,當遇到已追蹤的實體或不該追蹤的實體時,圖表的遍歷應該停止。 針對這種典型行為,使用過載。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,圖的迭代將不會繼續往下。

適用於

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>

一個委託人負責配置每個實體的變更追蹤資訊。 回調的第二個參數是上述傳遞的任意狀態物件。 如果回調返回 false,圖的迭代將不會繼續往下。

備註

此方法設計用於斷開情境,即先用一個上下文實例檢索實體,然後在另一個上下文實例中儲存變更。 例如,一個網路服務中,一個服務呼叫從資料庫中擷取實體,另一個服務呼叫則持續存在實體的任何變更。 每個服務呼叫都會使用一個新的上下文實例,當通話結束時會被處置。

通常,當遇到已追蹤的實體或不該追蹤的實體時,圖表的遍歷應該停止。 針對這種典型行為,使用過載。TrackGraph(Object, Action<EntityEntryGraphNode>) 這種過載則讓回撥決定穿越何時結束,但責任落在呼叫者身上,確保穿越不會進入無限迴圈。

更多資訊與範例請參閱 EF Core 變更追蹤 。

適用於