Class UnitOfWork<TContext>
- Namespace
- Biwen.QuickApi.UnitOfWork
- Assembly
- Biwen.QuickApi.dll
工作单元模式的默认实现,实现了 IUnitOfWork 和 IUnitOfWork{TContext} 接口
public sealed class UnitOfWork<TContext> : IRepositoryFactory, IUnitOfWork<TContext>, IUnitOfWork, IDisposable where TContext : DbContext
Type Parameters
TContext
数据库上下文类型
- Inheritance
-
UnitOfWork<TContext>
- Implements
-
IUnitOfWork<TContext>
- Inherited Members
- Extension Methods
Constructors
UnitOfWork(TContext)
初始化 UnitOfWork<TContext> 类的新实例
public UnitOfWork(TContext context)
Parameters
context
TContext数据库上下文
Properties
DbContext
获取数据库上下文
public TContext DbContext { get; }
Property Value
- TContext
TContext
类型的实例
LastSaveChangesResult
获取最后一次保存操作的结果
public SaveChangesResult LastSaveChangesResult { get; }
Property Value
Methods
BeginTransaction(bool)
同步开始一个事务
public IDbContextTransaction BeginTransaction(bool useIfExists = false)
Parameters
useIfExists
bool如果已存在事务,是否使用现有事务
Returns
- IDbContextTransaction
数据库事务对象
BeginTransactionAsync(bool)
异步开始一个事务
public Task<IDbContextTransaction> BeginTransactionAsync(bool useIfExists = false)
Parameters
useIfExists
bool如果已存在事务,是否使用现有事务
Returns
- Task<IDbContextTransaction>
数据库事务对象
Dispose()
执行与释放或重置非托管资源相关的应用程序定义的任务
public void Dispose()
ExecuteSqlCommand(string, params object[])
执行指定的SQL命令
public int ExecuteSqlCommand(string sql, params object[] parameters)
Parameters
Returns
- int
受影响的行数
ExecuteSqlCommandAsync(string, params object[])
异步执行指定的SQL命令
public Task<int> ExecuteSqlCommandAsync(string sql, params object[] parameters)
Parameters
Returns
FromSqlRaw<TEntity>(string, params object[])
使用原始SQL查询获取指定实体类型的数据
public IQueryable<TEntity> FromSqlRaw<TEntity>(string sql, params object[] parameters) where TEntity : class
Parameters
Returns
- IQueryable<TEntity>
包含满足SQL条件的元素的 IQueryable<T> 对象
Type Parameters
TEntity
实体类型
GetRepository<TEntity>(bool)
获取指定实体类型的仓储
public IRepository<TEntity> GetRepository<TEntity>(bool hasCustomRepository = false) where TEntity : class
Parameters
hasCustomRepository
bool是否使用自定义仓储
Returns
- IRepository<TEntity>
实现 IRepository<TEntity> 接口的实例
Type Parameters
TEntity
实体类型
SaveChanges()
将所有在此上下文中的更改保存到数据库
public int SaveChanges()
Returns
- int
写入数据库的状态条目数
SaveChangesAsync()
异步将所有在此工作单元中的更改保存到数据库
public Task<int> SaveChangesAsync()
Returns
SaveChangesAsync(params IUnitOfWork[])
使用分布式事务将所有在此上下文中的更改保存到数据库
public Task<int> SaveChangesAsync(params IUnitOfWork[] unitOfWorks)
Parameters
unitOfWorks
IUnitOfWork[]可选的 IUnitOfWork 数组
Returns
SetAutoDetectChanges(bool)
启用或禁用数据库上下文的自动变更检测
public void SetAutoDetectChanges(bool value)
Parameters
value
bool是否启用自动变更检测
TrackGraph(object, Action<EntityEntryGraphNode>)
使用跟踪图API附加已分离的实体
public void TrackGraph(object rootEntity, Action<EntityEntryGraphNode> callback)
Parameters
rootEntity
object根实体
callback
Action<EntityEntryGraphNode>将对象状态属性转换为实体条目状态的委托