using System.Data; namespace TakeoutSaaS.Shared.Abstractions.Data; /// /// Dapper 查询/命令执行器抽象,封装连接获取与读写路由。 /// public interface IDapperExecutor { /// /// 使用指定数据源与读写角色执行异步查询,并返回结果。 /// /// 查询结果类型。 /// 逻辑数据源名称。 /// 连接角色(读/写)。 /// 查询委托,提供已打开的连接和取消标记。 /// 取消标记。 /// 查询结果。 Task QueryAsync( string dataSourceName, DatabaseConnectionRole role, Func> query, CancellationToken cancellationToken = default); /// /// 使用指定数据源与读写角色执行异步命令。 /// /// 逻辑数据源名称。 /// 连接角色(读/写)。 /// 命令委托,提供已打开的连接和取消标记。 /// 取消标记。 /// 异步执行任务。 Task ExecuteAsync( string dataSourceName, DatabaseConnectionRole role, Func command, CancellationToken cancellationToken = default); /// /// 获取指定数据源及角色的默认命令超时时间(秒)。 /// /// 逻辑数据源名称。 /// 连接角色,默认读取从库。 /// 命令超时时间(秒)。 int GetDefaultCommandTimeoutSeconds( string dataSourceName, DatabaseConnectionRole role = DatabaseConnectionRole.Read); }