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


RelationalQueryableExtensions.AsSplitQuery<TEntity> Метод

Определение

Возвращает новый запрос, настроенный для загрузки коллекций в результатах запроса с помощью отдельных запросов к базе данных.

public static System.Linq.IQueryable<TEntity> AsSplitQuery<TEntity> (this System.Linq.IQueryable<TEntity> source) where TEntity : class;
static member AsSplitQuery : System.Linq.IQueryable<'Entity (requires 'Entity : null)> -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function AsSplitQuery(Of TEntity As Class) (source As IQueryable(Of TEntity)) As IQueryable(Of TEntity)

Параметры типа

TEntity

Тип запрашиваемой сущности.

Параметры

source
IQueryable<TEntity>

Исходный запрос.

Возвращаемое значение

IQueryable<TEntity>

Новый запрос, в котором коллекции будут загружаться с помощью отдельных запросов к базе данных.

Комментарии

Такое поведение может значительно повысить производительность при загрузке нескольких коллекций. Однако так как используются отдельные запросы, это может привести к несогласованности результатов при одновременном обновлении. Для устранения этой проблемы и обеспечения согласованности с разделенными запросами можно использовать сериализуемые транзакции или транзакции с моментальными снимками, но это может привести к дополнительным затратам на производительность и вызвать различия в поведении.

Поведением разделения запросов по умолчанию для запросов можно управлять с помощью UseQuerySplittingBehavior(QuerySplittingBehavior).

Дополнительные сведения и примеры см. в разделе Разделенные запросы EF Core .

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