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>
Исходный запрос.
Возвращаемое значение
Новый запрос, в котором коллекции будут загружаться с помощью отдельных запросов к базе данных.
Комментарии
Такое поведение может значительно повысить производительность при загрузке нескольких коллекций. Однако так как используются отдельные запросы, это может привести к несогласованности результатов при одновременном обновлении. Для устранения этой проблемы и обеспечения согласованности с разделенными запросами можно использовать сериализуемые транзакции или транзакции с моментальными снимками, но это может привести к дополнительным затратам на производительность и вызвать различия в поведении.
Поведением разделения запросов по умолчанию для запросов можно управлять с помощью UseQuerySplittingBehavior(QuerySplittingBehavior).
Дополнительные сведения и примеры см. в разделе Разделенные запросы EF Core .
Применяется к
Entity Framework