54 lines
1.5 KiB
C#
54 lines
1.5 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace CloudBuilder.Core.DatabaseAccessor.Entity
|
|
{
|
|
/// <summary>
|
|
/// 业务单元操作接口
|
|
/// </summary>
|
|
public interface IUnitOfWork : IDisposable
|
|
{
|
|
/// <summary>
|
|
/// 获取 工作单元的事务是否已提交
|
|
/// </summary>
|
|
bool HasCommitted { get; }
|
|
|
|
/// <summary>
|
|
/// 添加DbContext共享事务
|
|
/// </summary>
|
|
void AddDbContext(DbContext dbContext);
|
|
/// <summary>
|
|
/// 获取指定数据实体的上下文类型
|
|
/// </summary>
|
|
/// <param name="entityType">实体类型</param>
|
|
/// <returns>实体所属上下文实例</returns>
|
|
DbContext GetDbContext();
|
|
|
|
/// <summary>
|
|
/// 对数据库连接开启事务
|
|
/// </summary>
|
|
void BeginOrUseTransaction();
|
|
|
|
/// <summary>
|
|
/// 对数据库连接开启事务
|
|
/// </summary>
|
|
/// <param name="cancellationToken">异步取消标记</param>
|
|
/// <returns></returns>
|
|
Task BeginOrUseTransactionAsync(CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// 提交当前上下文的事务更改
|
|
/// </summary>
|
|
void Commit();
|
|
|
|
/// <summary>
|
|
/// 回滚所有事务
|
|
/// </summary>
|
|
void Rollback();
|
|
}
|
|
}
|