CloudBuilder/CloudBuilder.Core/DatabaseAccessor/Entity/IUnitOfWork.cs
owenchen 1c0c83af5f ow
2026-05-12 10:09:31 +08:00

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();
}
}