Table of Contents

Class UnitOfWork<TContext>

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

工作单元模式的默认实现,实现了 IUnitOfWorkIUnitOfWork{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

SaveChangesResult

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

sql string

原始SQL语句

parameters object[]

SQL参数

Returns

int

受影响的行数

ExecuteSqlCommandAsync(string, params object[])

异步执行指定的SQL命令

public Task<int> ExecuteSqlCommandAsync(string sql, params object[] parameters)

Parameters

sql string

原始SQL语句

parameters object[]

SQL参数

Returns

Task<int>

受影响的行数

FromSqlRaw<TEntity>(string, params object[])

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

public IQueryable<TEntity> FromSqlRaw<TEntity>(string sql, params object[] parameters) where TEntity : class

Parameters

sql string

原始SQL语句

parameters object[]

SQL参数

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

Task<int>

表示异步保存操作的任务,任务结果包含写入数据库的状态条目数

SaveChangesAsync(params IUnitOfWork[])

使用分布式事务将所有在此上下文中的更改保存到数据库

public Task<int> SaveChangesAsync(params IUnitOfWork[] unitOfWorks)

Parameters

unitOfWorks IUnitOfWork[]

可选的 IUnitOfWork 数组

Returns

Task<int>

表示异步保存操作的任务,任务结果包含写入数据库的状态条目数

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>

将对象状态属性转换为实体条目状态的委托