Table of Contents

Class Repository<TEntity>

Namespace
Biwen.QuickApi.UnitOfWork
Assembly
Biwen.QuickApi.dll

Represents a default generic repository implements the IRepository<TEntity> interface.

public sealed class Repository<TEntity> : IRepository<TEntity> where TEntity : class

Type Parameters

TEntity

The type of the entity.

Inheritance
Repository<TEntity>
Implements
IRepository<TEntity>
Inherited Members
Extension Methods

Constructors

Repository(DbContext)

Initializes a new instance of the Repository<TEntity> class.

public Repository(DbContext dbContext)

Parameters

dbContext DbContext

The database context.

Methods

Average(Expression<Func<TEntity, decimal>>, Expression<Func<TEntity, bool>>?)

根据条件获取平均值

public decimal Average(Expression<Func<TEntity, decimal>> selector, Expression<Func<TEntity, bool>>? predicate = null)

Parameters

selector Expression<Func<TEntity, decimal>>

选择器表达式

predicate Expression<Func<TEntity, bool>>

条件表达式

Returns

decimal

平均值

AverageAsync(Expression<Func<TEntity, decimal>>, Expression<Func<TEntity, bool>>?, CancellationToken)

异步根据条件获取平均值

public Task<decimal> AverageAsync(Expression<Func<TEntity, decimal>> selector, Expression<Func<TEntity, bool>>? predicate = null, CancellationToken cancellationToken = default)

Parameters

selector Expression<Func<TEntity, decimal>>

选择器表达式

predicate Expression<Func<TEntity, bool>>

条件表达式

cancellationToken CancellationToken

取消令牌

Returns

Task<decimal>

平均值

ChangeEntityState(TEntity, EntityState)

为Web API的PATCH方法更改实体状态

public void ChangeEntityState(TEntity entity, EntityState state)

Parameters

entity TEntity

实体

state EntityState

实体状态

ChangeTable(string)

更改表名。这要求表位于同一数据库中。

public void ChangeTable(string table)

Parameters

table string

表名

Remarks

这仅用于支持同一模型中的多个表。这要求表位于同一数据库中。

Count(Expression<Func<TEntity, bool>>?)

根据条件获取记录数量

public int Count(Expression<Func<TEntity, bool>>? predicate = null)

Parameters

predicate Expression<Func<TEntity, bool>>

条件表达式

Returns

int

记录数量

CountAsync(Expression<Func<TEntity, bool>>?, CancellationToken)

异步根据条件获取记录数量

public Task<int> CountAsync(Expression<Func<TEntity, bool>>? predicate = null, CancellationToken cancellationToken = default)

Parameters

predicate Expression<Func<TEntity, bool>>

条件表达式

cancellationToken CancellationToken

取消令牌

Returns

Task<int>

记录数量

Delete(IEnumerable<TEntity>)

删除多个指定实体

public void Delete(IEnumerable<TEntity> entities)

Parameters

entities IEnumerable<TEntity>

要删除的实体集合

Delete(object)

根据主键删除实体

public void Delete(object id)

Parameters

id object

主键值

Delete(TEntity)

删除指定实体

public void Delete(TEntity entity)

Parameters

entity TEntity

要删除的实体

Delete(params TEntity[])

删除多个指定实体

public void Delete(params TEntity[] entities)

Parameters

entities TEntity[]

要删除的实体数组

ExecuteDelete()

批量删除符合LINQ查询的所有数据库行

public int ExecuteDelete()

Returns

int

数据库中删除的总行数

Remarks

此操作立即针对数据库执行,而不是等到调用 SaveChanges() 时才执行。 它也不会以任何方式与EF变更跟踪器交互:调用此操作时正在跟踪的实体实例不会被考虑,也不会更新以反映更改。

有关更多信息和示例,请参阅 使用EF Core执行批量操作

ExecuteDeleteAsync(CancellationToken)

异步批量删除符合LINQ查询的所有数据库行

public Task<int> ExecuteDeleteAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

用于观察任务完成的 CancellationToken

Returns

Task<int>

数据库中删除的总行数

Remarks

此操作立即针对数据库执行,而不是等到调用 SaveChanges() 时才执行。 它也不会以任何方式与EF变更跟踪器交互:调用此操作时正在跟踪的实体实例不会被考虑,也不会更新以反映更改。

有关更多信息和示例,请参阅 使用EF Core执行批量操作

ExecuteUpdate(Expression<Func<SetPropertyCalls<TEntity>, SetPropertyCalls<TEntity>>>)

批量更新符合LINQ查询的数据库行

public int ExecuteUpdate(Expression<Func<SetPropertyCalls<TEntity>, SetPropertyCalls<TEntity>>> predicate)

Parameters

predicate Expression<Func<SetPropertyCalls<TEntity>, SetPropertyCalls<TEntity>>>

属性更新表达式

Returns

int

数据库中更新的总行数

Remarks

此操作立即针对数据库执行,而不是等到调用 SaveChanges() 时才执行。 它也不会以任何方式与EF变更跟踪器交互:调用此操作时正在跟踪的实体实例不会被考虑,也不会更新以反映更改。

有关更多信息和示例,请参阅 使用EF Core执行批量操作

ExecuteUpdateAsync(Expression<Func<SetPropertyCalls<TEntity>, SetPropertyCalls<TEntity>>>, CancellationToken)

异步批量更新符合LINQ查询的数据库行

public Task<int> ExecuteUpdateAsync(Expression<Func<SetPropertyCalls<TEntity>, SetPropertyCalls<TEntity>>> predicate, CancellationToken cancellationToken)

Parameters

predicate Expression<Func<SetPropertyCalls<TEntity>, SetPropertyCalls<TEntity>>>

属性更新表达式

cancellationToken CancellationToken

用于观察任务完成的 CancellationToken

Returns

Task<int>

数据库中更新的总行数

Remarks

此操作立即针对数据库执行,而不是等到调用 SaveChanges() 时才执行。 它也不会以任何方式与EF变更跟踪器交互:调用此操作时正在跟踪的实体实例不会被考虑,也不会更新以反映更改。

有关更多信息和示例,请参阅 使用EF Core执行批量操作

Exists(Expression<Func<TEntity, bool>>?)

根据条件判断记录是否存在

public bool Exists(Expression<Func<TEntity, bool>>? predicate = null)

Parameters

predicate Expression<Func<TEntity, bool>>

条件表达式

Returns

bool

如果存在则返回true,否则返回false

ExistsAsync(Expression<Func<TEntity, bool>>?, CancellationToken)

异步根据条件判断记录是否存在

public Task<bool> ExistsAsync(Expression<Func<TEntity, bool>>? selector = null, CancellationToken cancellationToken = default)

Parameters

selector Expression<Func<TEntity, bool>>

条件表达式

cancellationToken CancellationToken

取消令牌

Returns

Task<bool>

如果存在则返回true,否则返回false

Find(params object[])

使用给定的主键值查找实体。如果找到,则将其附加到上下文并返回。如果未找到任何实体,则返回 null。

public TEntity? Find(params object[] keyValues)

Parameters

keyValues object[]

要查找的实体的主键值

Returns

TEntity

找到的实体,如果未找到则返回 null

FindAsync(params object[])

异步使用给定的主键值查找实体。如果找到,则将其附加到上下文并返回。如果未找到任何实体,则返回 null。

public ValueTask<TEntity?> FindAsync(params object[] keyValues)

Parameters

keyValues object[]

要查找的实体的主键值

Returns

ValueTask<TEntity>

表示异步查找操作的任务,任务结果包含找到的实体,如果未找到则为 null

FindAsync(object[], CancellationToken)

异步使用给定的主键值查找实体。如果找到,则将其附加到上下文并返回。如果未找到任何实体,则返回 null。

public ValueTask<TEntity?> FindAsync(object[] keyValues, CancellationToken cancellationToken)

Parameters

keyValues object[]

要查找的实体的主键值

cancellationToken CancellationToken

用于观察任务完成的 CancellationToken

Returns

ValueTask<TEntity>

表示异步查找操作的任务,任务结果包含找到的实体,如果未找到则为 null

FromSql(string, params object[])

使用原始SQL查询获取指定实体类型的数据

public IQueryable<TEntity> FromSql(string sql, params object[] parameters)

Parameters

sql string

原始SQL语句

parameters object[]

参数

Returns

IQueryable<TEntity>

包含满足原始SQL指定条件的元素的 IQueryable<T> 对象

GetAll(bool)

获取所有实体。不推荐使用此方法

public IQueryable<TEntity> GetAll(bool disableTracking = true)

Parameters

disableTracking bool

是否禁用更改跟踪,默认为 true

Returns

IQueryable<TEntity>

IQueryable<T> 类型的结果

GetAll(Expression<Func<TEntity, bool>>?, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>?, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>?, bool, bool, bool)

根据条件获取所有实体。不推荐使用此方法

public IQueryable<TEntity> GetAll(Expression<Func<TEntity, bool>>? predicate = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>? orderBy = null, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>? include = null, bool disableTracking = true, bool ignoreQueryFilters = false, bool ignoreAutoIncludes = false)

Parameters

predicate Expression<Func<TEntity, bool>>

用于测试每个元素是否满足条件的函数

orderBy Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>

用于排序元素的函数

include Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>

用于包含导航属性的函数

disableTracking bool

是否禁用更改跟踪,默认为 true

ignoreQueryFilters bool

是否忽略查询筛选器

ignoreAutoIncludes bool

是否忽略自动包含

Returns

IQueryable<TEntity>

满足条件的查询结果

Remarks

此方法默认为只读、非跟踪查询

GetAllAsync(bool)

异步获取所有实体。不推荐使用此方法

public Task<IList<TEntity>> GetAllAsync(bool disableTracking = true)

Parameters

disableTracking bool

是否禁用更改跟踪,默认为 true

Returns

Task<IList<TEntity>>

实体列表集合

GetAllAsync(Expression<Func<TEntity, bool>>?, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>?, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>?, bool, bool, bool)

异步根据条件获取所有实体。不推荐使用此方法

public Task<IList<TEntity>> GetAllAsync(Expression<Func<TEntity, bool>>? predicate = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>? orderBy = null, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>? include = null, bool disableTracking = true, bool ignoreQueryFilters = false, bool ignoreAutoIncludes = false)

Parameters

predicate Expression<Func<TEntity, bool>>

用于测试每个元素是否满足条件的函数

orderBy Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>

用于排序元素的函数

include Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>

用于包含导航属性的函数

disableTracking bool

是否禁用更改跟踪,默认为 true

ignoreQueryFilters bool

是否忽略查询筛选器

ignoreAutoIncludes bool

是否忽略自动包含

Returns

Task<IList<TEntity>>

满足条件的实体列表集合

Remarks

此方法默认为只读、非跟踪查询

GetAllAsync<TResult>(Expression<Func<TEntity, TResult>>, bool)

异步获取所有投影后的实体。不推荐使用此方法

public Task<IList<TResult>> GetAllAsync<TResult>(Expression<Func<TEntity, TResult>> selector, bool disableTracking = true)

Parameters

selector Expression<Func<TEntity, TResult>>

用于投影的选择器

disableTracking bool

是否禁用更改跟踪,默认为 true

Returns

Task<IList<TResult>>

投影后的实体列表集合

Type Parameters

TResult

GetAllAsync<TResult>(Expression<Func<TEntity, TResult>>, Expression<Func<TEntity, bool>>?, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>?, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>?, bool, bool, bool)

异步根据条件获取所有投影后的实体。不推荐使用此方法

public Task<IList<TResult>> GetAllAsync<TResult>(Expression<Func<TEntity, TResult>> selector, Expression<Func<TEntity, bool>>? predicate = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>? orderBy = null, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>? include = null, bool disableTracking = true, bool ignoreQueryFilters = false, bool ignoreAutoIncludes = false)

Parameters

selector Expression<Func<TEntity, TResult>>

用于投影的选择器

predicate Expression<Func<TEntity, bool>>

用于测试每个元素是否满足条件的函数

orderBy Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>

用于排序元素的函数

include Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>

用于包含导航属性的函数

disableTracking bool

是否禁用更改跟踪,默认为 true

ignoreQueryFilters bool

是否忽略查询筛选器

ignoreAutoIncludes bool

是否忽略自动包含

Returns

Task<IList<TResult>>

满足条件的投影后实体列表集合

Type Parameters

TResult

Remarks

此方法默认为只读、非跟踪查询

GetAll<TResult>(Expression<Func<TEntity, TResult>>, bool)

获取所有投影后的实体。不推荐使用此方法

public IQueryable<TResult> GetAll<TResult>(Expression<Func<TEntity, TResult>> selector, bool disableTracking = true)

Parameters

selector Expression<Func<TEntity, TResult>>

用于投影的选择器

disableTracking bool

是否禁用更改跟踪,默认为 true

Returns

IQueryable<TResult>

IQueryable<T> 类型的结果

Type Parameters

TResult

GetAll<TResult>(Expression<Func<TEntity, TResult>>, Expression<Func<TEntity, bool>>?, bool)

根据条件获取所有投影后的实体。不推荐使用此方法

public IQueryable<TResult> GetAll<TResult>(Expression<Func<TEntity, TResult>> selector, Expression<Func<TEntity, bool>>? predicate = null, bool disableTracking = true)

Parameters

selector Expression<Func<TEntity, TResult>>

用于投影的选择器

predicate Expression<Func<TEntity, bool>>

用于测试每个元素是否满足条件的函数

disableTracking bool

是否禁用更改跟踪,默认为 true

Returns

IQueryable<TResult>

IQueryable<T> 类型的结果

Type Parameters

TResult

GetAll<TResult>(Expression<Func<TEntity, TResult>>, Expression<Func<TEntity, bool>>?, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>?, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>?, bool, bool, bool)

根据条件获取所有投影后的实体。不推荐使用此方法

public IQueryable<TResult> GetAll<TResult>(Expression<Func<TEntity, TResult>> selector, Expression<Func<TEntity, bool>>? predicate = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>? orderBy = null, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>? include = null, bool disableTracking = true, bool ignoreQueryFilters = false, bool ignoreAutoIncludes = false)

Parameters

selector Expression<Func<TEntity, TResult>>

用于投影的选择器

predicate Expression<Func<TEntity, bool>>

用于测试每个元素是否满足条件的函数

orderBy Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>

用于排序元素的函数

include Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>

用于包含导航属性的函数

disableTracking bool

是否禁用更改跟踪,默认为 true

ignoreQueryFilters bool

是否忽略查询筛选器

ignoreAutoIncludes bool

是否忽略自动包含

Returns

IQueryable<TResult>

满足条件的查询结果

Type Parameters

TResult

Remarks

此方法默认为只读、非跟踪查询

GetFirstOrDefault(Expression<Func<TEntity, bool>>?, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>?, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>?, bool, bool, bool)

根据条件表达式、排序方式和导航属性包含获取第一个或默认实体。此方法默认为只读、非跟踪查询。

public TEntity? GetFirstOrDefault(Expression<Func<TEntity, bool>>? predicate = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>? orderBy = null, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>? include = null, bool disableTracking = true, bool ignoreQueryFilters = false, bool ignoreAutoIncludes = false)

Parameters

predicate Expression<Func<TEntity, bool>>

用于测试每个元素是否满足条件的函数

orderBy Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>

用于排序元素的函数

include Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>

用于包含导航属性的函数

disableTracking bool

是否禁用更改跟踪,默认为 true

ignoreQueryFilters bool

是否忽略查询筛选器

ignoreAutoIncludes bool

是否忽略自动包含

Returns

TEntity

满足条件的第一个元素,如果没有则返回默认值

Remarks

此方法默认为只读、非跟踪查询

GetFirstOrDefaultAsync(Expression<Func<TEntity, bool>>?, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>?, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>?, bool, bool, bool)

异步根据条件表达式、排序方式和导航属性包含获取第一个或默认实体。此方法默认为只读、非跟踪查询。

public Task<TEntity?> GetFirstOrDefaultAsync(Expression<Func<TEntity, bool>>? predicate = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>? orderBy = null, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>? include = null, bool disableTracking = true, bool ignoreQueryFilters = false, bool ignoreAutoIncludes = false)

Parameters

predicate Expression<Func<TEntity, bool>>

用于测试每个元素是否满足条件的函数

orderBy Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>

用于排序元素的函数

include Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>

用于包含导航属性的函数

disableTracking bool

是否禁用更改跟踪,默认为 true

ignoreQueryFilters bool

是否忽略查询筛选器

ignoreAutoIncludes bool

是否忽略自动包含

Returns

Task<TEntity>

表示异步操作的任务,返回满足条件的第一个元素,如果没有则返回默认值

Remarks

此方法默认为只读、非跟踪查询

GetFirstOrDefault<TResult>(Expression<Func<TEntity, TResult>>, Expression<Func<TEntity, bool>>?, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>?, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>?, bool, bool, bool)

根据条件表达式、排序方式和导航属性包含获取投影后的第一个或默认实体。此方法默认为只读、非跟踪查询。

public TResult? GetFirstOrDefault<TResult>(Expression<Func<TEntity, TResult>> selector, Expression<Func<TEntity, bool>>? predicate = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>? orderBy = null, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>? include = null, bool disableTracking = true, bool ignoreQueryFilters = false, bool ignoreAutoIncludes = false)

Parameters

selector Expression<Func<TEntity, TResult>>

用于投影的选择器

predicate Expression<Func<TEntity, bool>>

用于测试每个元素是否满足条件的函数

orderBy Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>

用于排序元素的函数

include Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>

用于包含导航属性的函数

disableTracking bool

是否禁用更改跟踪,默认为 true

ignoreQueryFilters bool

是否忽略查询筛选器

ignoreAutoIncludes bool

是否忽略自动包含

Returns

TResult

满足条件的第一个投影元素,如果没有则返回默认值

Type Parameters

TResult

Remarks

此方法默认为只读、非跟踪查询

GetPagedList(Expression<Func<TEntity, bool>>?, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>?, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>?, int, int, bool, bool, bool)

根据条件表达式、排序方式和分页信息获取 IPagedList<T> 结果集。此方法默认禁用实体跟踪。

public IPagedList<TEntity> GetPagedList(Expression<Func<TEntity, bool>>? predicate = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>? orderBy = null, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>? include = null, int pageIndex = 0, int pageSize = 20, bool disableTracking = true, bool ignoreQueryFilters = false, bool ignoreAutoIncludes = false)

Parameters

predicate Expression<Func<TEntity, bool>>

用于测试每个元素是否满足条件的函数

orderBy Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>

用于排序元素的函数

include Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>

用于包含导航属性的函数

pageIndex int

页索引,从0开始

pageSize int

每页大小

disableTracking bool

是否禁用更改跟踪,默认为 true

ignoreQueryFilters bool

是否忽略查询筛选器

ignoreAutoIncludes bool

是否忽略自动包含

Returns

IPagedList<TEntity>

包含满足 predicate 指定条件的元素的 IPagedList<T> 实例

Remarks

此方法默认禁用实体跟踪查询

GetPagedListAsync(Expression<Func<TEntity, bool>>?, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>?, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>?, int, int, bool, bool, bool, CancellationToken)

分页查询 IPagedList<T>

public Task<IPagedList<TEntity>> GetPagedListAsync(Expression<Func<TEntity, bool>>? predicate = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>? orderBy = null, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>? include = null, int pageIndex = 0, int pageSize = 20, bool disableTracking = true, bool ignoreQueryFilters = false, bool ignoreAutoIncludes = false, CancellationToken cancellationToken = default)

Parameters

predicate Expression<Func<TEntity, bool>>

条件表达式

orderBy Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>

排序表达式

include Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>

包含表达式

pageIndex int

页码 默认:0,表示第一页

pageSize int

分页尺寸 默认:20

disableTracking bool

是否禁用追踪,默认:True

ignoreQueryFilters bool

是否忽略查询Filter,默认:False

ignoreAutoIncludes bool

是否忽略自动Includes,默认:False

cancellationToken CancellationToken

用于观察任务完成的 CancellationToken

Returns

Task<IPagedList<TEntity>>

包含满足 predicate 指定条件的元素的 IPagedList<T> 实例

Remarks

请注意当前方法 默认禁止了EntityTracking

GetPagedListAsync<TResult>(Expression<Func<TEntity, TResult>>, Expression<Func<TEntity, bool>>?, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>?, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>?, int, int, bool, bool, bool, CancellationToken)

异步根据条件表达式、排序方式和分页信息获取投影后的 IPagedList<T> 结果集。此方法默认禁用实体跟踪。

public Task<IPagedList<TResult>> GetPagedListAsync<TResult>(Expression<Func<TEntity, TResult>> selector, Expression<Func<TEntity, bool>>? predicate = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>? orderBy = null, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>? include = null, int pageIndex = 0, int pageSize = 20, bool disableTracking = true, bool ignoreQueryFilters = false, bool ignoreAutoIncludes = false, CancellationToken cancellationToken = default) where TResult : class

Parameters

selector Expression<Func<TEntity, TResult>>

用于投影的选择器

predicate Expression<Func<TEntity, bool>>

用于测试每个元素是否满足条件的函数

orderBy Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>

用于排序元素的函数

include Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>

用于包含导航属性的函数

pageIndex int

页索引,从0开始

pageSize int

每页大小

disableTracking bool

是否禁用更改跟踪,默认为 true

ignoreQueryFilters bool

是否忽略查询筛选器

ignoreAutoIncludes bool

是否忽略自动包含

cancellationToken CancellationToken

用于观察任务完成的 CancellationToken

Returns

Task<IPagedList<TResult>>

包含满足 predicate 指定条件的元素的 IPagedList<T> 实例

Type Parameters

TResult

Remarks

此方法默认禁用实体跟踪查询

GetPagedList<TResult>(Expression<Func<TEntity, TResult>>, Expression<Func<TEntity, bool>>?, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>?, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>?, int, int, bool, bool, bool)

根据条件表达式、排序方式和分页信息获取投影后的 IPagedList<T> 结果集。此方法默认禁用实体跟踪。

public IPagedList<TResult> GetPagedList<TResult>(Expression<Func<TEntity, TResult>> selector, Expression<Func<TEntity, bool>>? predicate = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>? orderBy = null, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>? include = null, int pageIndex = 0, int pageSize = 20, bool disableTracking = true, bool ignoreQueryFilters = false, bool ignoreAutoIncludes = false) where TResult : class

Parameters

selector Expression<Func<TEntity, TResult>>

用于投影的选择器

predicate Expression<Func<TEntity, bool>>

用于测试每个元素是否满足条件的函数

orderBy Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>

用于排序元素的函数

include Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>

用于包含导航属性的函数

pageIndex int

页索引,从0开始

pageSize int

每页大小

disableTracking bool

是否禁用更改跟踪,默认为 true

ignoreQueryFilters bool

是否忽略查询筛选器

ignoreAutoIncludes bool

是否忽略自动包含

Returns

IPagedList<TResult>

包含满足 predicate 指定条件的元素的 IPagedList<T> 实例

Type Parameters

TResult

Remarks

此方法默认禁用实体跟踪查询

Insert(IEnumerable<TEntity>)

同步插入多个实体

public void Insert(IEnumerable<TEntity> entities)

Parameters

entities IEnumerable<TEntity>

要插入的实体集合

Insert(TEntity)

同步插入新实体

public TEntity Insert(TEntity entity)

Parameters

entity TEntity

要插入的实体

Returns

TEntity

插入后的实体

Insert(params TEntity[])

同步插入多个实体

public void Insert(params TEntity[] entities)

Parameters

entities TEntity[]

要插入的实体数组

InsertAsync(IEnumerable<TEntity>, CancellationToken)

异步插入多个实体

public Task InsertAsync(IEnumerable<TEntity> entities, CancellationToken cancellationToken = default)

Parameters

entities IEnumerable<TEntity>

要插入的实体集合

cancellationToken CancellationToken

用于观察任务完成的 CancellationToken

Returns

Task

表示异步插入操作的任务

InsertAsync(TEntity, CancellationToken)

异步插入新实体

public ValueTask<EntityEntry<TEntity>> InsertAsync(TEntity entity, CancellationToken cancellationToken = default)

Parameters

entity TEntity

要插入的实体

cancellationToken CancellationToken

用于观察任务完成的 CancellationToken

Returns

ValueTask<EntityEntry<TEntity>>

表示异步插入操作的任务

InsertAsync(params TEntity[])

异步插入多个实体

public Task InsertAsync(params TEntity[] entities)

Parameters

entities TEntity[]

要插入的实体数组

Returns

Task

表示异步插入操作的任务

LongCount(Expression<Func<TEntity, bool>>?)

根据条件获取长整型记录数量

public long LongCount(Expression<Func<TEntity, bool>>? predicate = null)

Parameters

predicate Expression<Func<TEntity, bool>>

条件表达式

Returns

long

记录数量

LongCountAsync(Expression<Func<TEntity, bool>>?, CancellationToken)

异步根据条件获取长整型记录数量

public Task<long> LongCountAsync(Expression<Func<TEntity, bool>>? predicate = null, CancellationToken cancellationToken = default)

Parameters

predicate Expression<Func<TEntity, bool>>

条件表达式

cancellationToken CancellationToken

取消令牌

Returns

Task<long>

记录数量

MaxAsync<T>(Expression<Func<TEntity, T>>, Expression<Func<TEntity, bool>>?, CancellationToken)

异步根据条件获取最大值

public Task<T> MaxAsync<T>(Expression<Func<TEntity, T>> selector, Expression<Func<TEntity, bool>>? predicate = null, CancellationToken cancellationToken = default)

Parameters

selector Expression<Func<TEntity, T>>

选择器表达式

predicate Expression<Func<TEntity, bool>>

条件表达式

cancellationToken CancellationToken

取消令牌

Returns

Task<T>

最大值

Type Parameters

T

Max<T>(Expression<Func<TEntity, T>>, Expression<Func<TEntity, bool>>?)

根据条件获取最大值

public T? Max<T>(Expression<Func<TEntity, T>> selector, Expression<Func<TEntity, bool>>? predicate = null)

Parameters

selector Expression<Func<TEntity, T>>

选择器表达式

predicate Expression<Func<TEntity, bool>>

条件表达式

Returns

T

最大值

Type Parameters

T

MinAsync<T>(Expression<Func<TEntity, T>>, Expression<Func<TEntity, bool>>?, CancellationToken)

异步根据条件获取最小值

public Task<T> MinAsync<T>(Expression<Func<TEntity, T>> selector, Expression<Func<TEntity, bool>>? predicate = null, CancellationToken cancellationToken = default)

Parameters

selector Expression<Func<TEntity, T>>

选择器表达式

predicate Expression<Func<TEntity, bool>>

条件表达式

cancellationToken CancellationToken

取消令牌

Returns

Task<T>

最小值

Type Parameters

T

Min<T>(Expression<Func<TEntity, T>>, Expression<Func<TEntity, bool>>?)

根据条件获取最小值

public T? Min<T>(Expression<Func<TEntity, T>> selector, Expression<Func<TEntity, bool>>? predicate = null)

Parameters

selector Expression<Func<TEntity, T>>

选择器表达式

predicate Expression<Func<TEntity, bool>>

条件表达式

Returns

T

最小值

Type Parameters

T

Sum(Expression<Func<TEntity, decimal>>, Expression<Func<TEntity, bool>>?)

根据条件获取求和值

public decimal Sum(Expression<Func<TEntity, decimal>> selector, Expression<Func<TEntity, bool>>? predicate = null)

Parameters

selector Expression<Func<TEntity, decimal>>

选择器表达式

predicate Expression<Func<TEntity, bool>>

条件表达式

Returns

decimal

求和值

SumAsync(Expression<Func<TEntity, decimal>>, Expression<Func<TEntity, bool>>?, CancellationToken)

异步根据条件获取求和值

public Task<decimal> SumAsync(Expression<Func<TEntity, decimal>> selector, Expression<Func<TEntity, bool>>? predicate = null, CancellationToken cancellationToken = default)

Parameters

selector Expression<Func<TEntity, decimal>>

选择器表达式

predicate Expression<Func<TEntity, bool>>

条件表达式

cancellationToken CancellationToken

取消令牌

Returns

Task<decimal>

求和值

Update(IEnumerable<TEntity>)

更新多个指定实体

public void Update(IEnumerable<TEntity> entities)

Parameters

entities IEnumerable<TEntity>

要更新的实体集合

Update(TEntity)

更新指定实体

public void Update(TEntity entity)

Parameters

entity TEntity

要更新的实体

Update(params TEntity[])

更新多个指定实体

public void Update(params TEntity[] entities)

Parameters

entities TEntity[]

要更新的实体数组