ChangeTracker.TrackGraph 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| TrackGraph(Object, Action<EntityEntryGraphNode>) |
開始追蹤一個實體及其可透過其導航屬性抵達的實體。
遍歷是遞迴的,因此任何發現的實體的導航屬性也會被掃描。
指定 |
| TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode,TState,Boolean>) |
開始追蹤一個實體及其可達的實體,透過遍歷其導航屬性。
遍歷是遞迴的,因此任何發現的實體的導航屬性也會被掃描。
指定 此方法設計用於斷開情境,即先用一個上下文實例檢索實體,然後在另一個上下文實例中儲存變更。 例如,一個網路服務中,一個服務呼叫從資料庫中擷取實體,另一個服務呼叫則持續存在實體的任何變更。 每個服務呼叫都會使用一個新的上下文實例,當通話結束時會被處置。 通常,當遇到已追蹤的實體或不該追蹤的實體時,圖表的遍歷應該停止。 針對這種典型行為,使用過載。TrackGraph(Object, Action<EntityEntryGraphNode>) 這種過載則讓回撥決定穿越何時結束,但責任落在呼叫者身上,確保穿越不會進入無限迴圈。 |
| TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode<TState>,Boolean>) |
開始追蹤一個實體及其可透過其導航屬性抵達的實體。
遍歷是遞迴的,因此任何發現的實體的導航屬性也會被掃描。
指定 |
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
備註
此方法設計用於斷開情境,即先用一個上下文實例檢索實體,然後在另一個上下文實例中儲存變更。 例如,一個網路服務中,一個服務呼叫從資料庫中擷取實體,另一個服務呼叫則持續存在實體的任何變更。 每個服務呼叫都會使用一個新的上下文實例,當通話結束時會被處置。
如果發現一個已被上下文追蹤的實體,該實體不會被處理(其導航屬性也不會被遍歷)。
更多資訊與範例請參閱 EF Core 變更追蹤 。
適用於
TrackGraph<TState>(Object, TState, Func<EntityEntryGraphNode,TState,Boolean>)
開始追蹤一個實體及其可達的實體,透過遍歷其導航屬性。
遍歷是遞迴的,因此任何發現的實體的導航屬性也會被掃描。
指定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>)
開始追蹤一個實體及其可透過其導航屬性抵達的實體。
遍歷是遞迴的,因此任何發現的實體的導航屬性也會被掃描。
指定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 變更追蹤 。