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
DbContextThe 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
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
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
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
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
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
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
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
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
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
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
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
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[]要更新的实体数组