RelationalQueryableExtensions.AsSplitQuery<TEntity> 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个新查询,该查询配置为通过单独的数据库查询在查询结果中加载集合。
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 拆分查询 。