Поделиться через


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 параметр , в который должна отслеживаться каждая сущность. Если состояние не задано, сущность остается без отслеживания.

Этот метод предназначен для использования в отключенных сценариях, когда сущности извлекаются с помощью одного экземпляра контекста, а затем изменения сохраняются с помощью другого экземпляра контекста. Примером этого является веб-служба, в которой один вызов службы извлекает сущности из базы данных, а другой вызов службы сохраняет любые изменения в сущностях. Каждый вызов службы использует новый экземпляр контекста, который удаляется после завершения вызова.

Обычно обход графа должен останавливаться при обнаружении уже отслеживаемой сущности или при достижении сущности, которую не следует отслеживать. Для этого типичного поведения используйте перегрузку TrackGraph(Object, Action<EntityEntryGraphNode>) . Эта перегрузка, с другой стороны, позволяет обратному вызову решить, когда завершится обход, но затем нагрузка на вызывающий объект, чтобы гарантировать, что обход не будет входить в бесконечный цикл.

TrackGraph(Object, Action<EntityEntryGraphNode>)

Исходный код:
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
Исходный код:
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 .

Применяется к

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.

Применяется к