将Feature/XP.Common和Feature/XP.Hardware分支合并至Develop/XP.forHardwareAndCommon,完善XPapp注册和相关硬件类库通用类库功能。

This commit is contained in:
QI Mingxuan
2026-04-16 17:31:13 +08:00
parent 6ec4c3ddaa
commit 2bd6e566c3
581 changed files with 74600 additions and 222 deletions
@@ -0,0 +1,88 @@
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
{
/// <summary>
/// 通用数据库操作接口(适配任意数据库,SQLite为具体实现)
/// </summary>
public interface IDbContext : IDisposable
{
/// <summary>
/// 打开数据库连接
/// </summary>
IDbExecuteResult OpenConnection();
/// <summary>
/// 异步打开数据库连接
/// </summary>
Task<IDbExecuteResult> OpenConnectionAsync();
/// <summary>
/// 开始事务
/// </summary>
(IDbExecuteResult Result, IDbTransaction? Transaction) BeginTransaction();
/// <summary>
/// 执行增删改SQL(无返回值)
/// </summary>
/// <param name="sql">SQL语句(参数化)</param>
/// <param name="parameters">参数集合(key=参数名,value=参数值)</param>
IDbExecuteResult ExecuteNonQuery(string sql, Dictionary<string, object>? parameters = null);
/// <summary>
/// 异步执行增删改SQL
/// </summary>
Task<IDbExecuteResult> ExecuteNonQueryAsync(string sql, Dictionary<string, object>? parameters = null);
/// <summary>
/// 执行查询并返回单个值(如Count/Sum)
/// </summary>
/// <typeparam name="T">返回值类型</typeparam>
/// <param name="sql">SQL语句</param>
/// <param name="parameters">参数集合</param>
(IDbExecuteResult Result, T? Value) ExecuteScalar<T>(string sql, Dictionary<string, object>? parameters = null);
/// <summary>
/// 异步执行查询并返回单个值
/// </summary>
Task<(IDbExecuteResult Result, T? Value)> ExecuteScalarAsync<T>(string sql, Dictionary<string, object>? parameters = null);
/// <summary>
/// 执行查询并返回DataTable
/// </summary>
(IDbExecuteResult Result, DataTable? Data) ExecuteDataTable(string sql, Dictionary<string, object>? parameters = null);
/// <summary>
/// 异步执行查询并返回DataTable
/// </summary>
Task<(IDbExecuteResult Result, DataTable? Data)> ExecuteDataTableAsync(string sql, Dictionary<string, object>? parameters = null);
/// <summary>
/// 执行查询并映射为实体列表
/// </summary>
/// <typeparam name="T">实体类型(需有无参构造函数)</typeparam>
(IDbExecuteResult Result, List<T> Data) QueryList<T>(string sql, Dictionary<string, object>? parameters = null) where T : new();
/// <summary>
/// 异步执行查询并映射为实体列表
/// </summary>
Task<(IDbExecuteResult Result, List<T> Data)> QueryListAsync<T>(string sql, Dictionary<string, object>? parameters = null) where T : new();
/// <summary>
/// 执行分页查询并返回分页结果
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
(IDbExecuteResult Result, PaginationResponse<T> Data) QueryPaged<T>(string sql, PaginationRequest pagination, Dictionary<string, object>? parameters = null) where T : new();
/// <summary>
/// 异步执行分页查询并返回分页结果
/// </summary>
Task<(IDbExecuteResult Result, PaginationResponse<T> Data)> QueryPagedAsync<T>(string sql, PaginationRequest pagination, Dictionary<string, object>? parameters = null) where T : new();
}
}
@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace XP.Common.Database.Interfaces
{
/// <summary>
/// 数据库操作通用执行结果
/// </summary>
public interface IDbExecuteResult
{
/// <summary>
/// 是否执行成功
/// </summary>
bool IsSuccess { get; set; }
/// <summary>
/// 影响行数(增删改)
/// </summary>
int RowsAffected { get; set; }
/// <summary>
/// 消息(成功/失败提示)
/// </summary>
string Message { get; set; }
/// <summary>
/// 异常信息(失败时非空)
/// </summary>
Exception? Exception { get; set; }
}
}
@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace XP.Common.Database.Interfaces
{
/// <summary>
/// 数据库事务接口
/// </summary>
public interface IDbTransaction : IDisposable
{
/// <summary>
/// 提交事务
/// </summary>
IDbExecuteResult Commit();
/// <summary>
/// 回滚事务
/// </summary>
IDbExecuteResult Rollback();
}
}