using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using XP.Common.Database.Models; namespace XP.Common.Database.Interfaces { /// /// 通用数据库操作接口(适配任意数据库,SQLite为具体实现) /// public interface IDbContext : IDisposable { /// /// 打开数据库连接 /// IDbExecuteResult OpenConnection(); /// /// 异步打开数据库连接 /// Task OpenConnectionAsync(); /// /// 开始事务 /// (IDbExecuteResult Result, IDbTransaction? Transaction) BeginTransaction(); /// /// 执行增删改SQL(无返回值) /// /// SQL语句(参数化) /// 参数集合(key=参数名,value=参数值) IDbExecuteResult ExecuteNonQuery(string sql, Dictionary? parameters = null); /// /// 异步执行增删改SQL /// Task ExecuteNonQueryAsync(string sql, Dictionary? parameters = null); /// /// 执行查询并返回单个值(如Count/Sum) /// /// 返回值类型 /// SQL语句 /// 参数集合 (IDbExecuteResult Result, T? Value) ExecuteScalar(string sql, Dictionary? parameters = null); /// /// 异步执行查询并返回单个值 /// Task<(IDbExecuteResult Result, T? Value)> ExecuteScalarAsync(string sql, Dictionary? parameters = null); /// /// 执行查询并返回DataTable /// (IDbExecuteResult Result, DataTable? Data) ExecuteDataTable(string sql, Dictionary? parameters = null); /// /// 异步执行查询并返回DataTable /// Task<(IDbExecuteResult Result, DataTable? Data)> ExecuteDataTableAsync(string sql, Dictionary? parameters = null); /// /// 执行查询并映射为实体列表 /// /// 实体类型(需有无参构造函数) (IDbExecuteResult Result, List Data) QueryList(string sql, Dictionary? parameters = null) where T : new(); /// /// 异步执行查询并映射为实体列表 /// Task<(IDbExecuteResult Result, List Data)> QueryListAsync(string sql, Dictionary? parameters = null) where T : new(); /// /// 执行分页查询并返回分页结果 /// /// 实体类型 (IDbExecuteResult Result, PaginationResponse Data) QueryPaged(string sql, PaginationRequest pagination, Dictionary? parameters = null) where T : new(); /// /// 异步执行分页查询并返回分页结果 /// Task<(IDbExecuteResult Result, PaginationResponse Data)> QueryPagedAsync(string sql, PaginationRequest pagination, Dictionary? parameters = null) where T : new(); } }