2025-07-21 18:49:49 +08:00
|
|
|
|
using DMS.Core.Interfaces.Repositories;
|
|
|
|
|
|
|
2025-07-21 14:35:17 +08:00
|
|
|
|
namespace DMS.Core.Interfaces;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 定义了一个仓储管理器,它使用工作单元模式来组合多个仓储操作,以确保事务的原子性。
|
|
|
|
|
|
/// 实现了IDisposable,以确保数据库连接等资源能被正确释放。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public interface IRepositoryManager : IDisposable
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取设备仓储的实例。
|
|
|
|
|
|
/// 所有通过此管理器获取的仓储都共享同一个数据库上下文和事务。
|
|
|
|
|
|
/// </summary>
|
2025-07-21 18:49:49 +08:00
|
|
|
|
IDeviceRepository Devices { get; set; }
|
2025-07-21 14:35:17 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取变量表仓储的实例。
|
|
|
|
|
|
/// </summary>
|
2025-07-21 18:49:49 +08:00
|
|
|
|
IVariableTableRepository VariableTables { get; set; }
|
2025-07-21 14:35:17 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取变量仓储的实例。
|
|
|
|
|
|
/// </summary>
|
2025-07-21 18:49:49 +08:00
|
|
|
|
IVariableRepository Variables { get; set; }
|
2025-07-21 14:35:17 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取MQTT服务器仓储的实例。
|
|
|
|
|
|
/// </summary>
|
2025-07-21 18:49:49 +08:00
|
|
|
|
IMqttServerRepository MqttServers { get; set; }
|
2025-07-21 14:35:17 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取变量MQTT别名仓储的实例。
|
|
|
|
|
|
/// </summary>
|
2025-07-21 18:49:49 +08:00
|
|
|
|
IVariableMqttAliasRepository VariableMqttAliases { get; set; }
|
2025-07-21 14:35:17 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取菜单仓储的实例。
|
|
|
|
|
|
/// </summary>
|
2025-07-21 18:49:49 +08:00
|
|
|
|
IMenuRepository Menus { get; set; }
|
2025-07-21 14:35:17 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取变量历史仓储的实例。
|
|
|
|
|
|
/// </summary>
|
2025-07-21 18:49:49 +08:00
|
|
|
|
IVariableHistoryRepository VariableHistories { get; set; }
|
2025-07-21 14:35:17 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取用户仓储的实例。
|
|
|
|
|
|
/// </summary>
|
2025-07-21 18:49:49 +08:00
|
|
|
|
IUserRepository Users { get; set; }
|
2025-07-21 14:35:17 +08:00
|
|
|
|
|
2025-07-24 15:07:03 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 初始化数据库
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
IInitializeRepository InitializeRepository { get; set; }
|
|
|
|
|
|
|
2025-07-21 14:35:17 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 开始一个新的数据库事务。
|
|
|
|
|
|
/// </summary>
|
2025-07-21 18:49:49 +08:00
|
|
|
|
Task BeginTranAsync();
|
2025-07-21 14:35:17 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 异步提交当前事务中的所有变更。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns>一个表示异步操作的任务。</returns>
|
|
|
|
|
|
Task CommitAsync();
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 异步回滚当前事务中的所有变更。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns>一个表示异步操作的任务。</returns>
|
|
|
|
|
|
Task RollbackAsync();
|
|
|
|
|
|
}
|