using Microsoft.EntityFrameworkCore.Storage; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Linq.Expressions; using APT.Infrastructure.Core; namespace APT.Infrastructure.Api { /// /// 领域服务接口 /// /// /// /// public interface IDomainService : IDependInject { /// /// 对数据库执行给定的 DDL/DML 命令。 /// /// 命令字符串 /// 参数 /// 受影响的行数 int ExecuteSqlCommand(string sql, params object[] parameters); /// /// 对数据库执行给定的 DDL/DML 命令。 /// /// 事务行为 /// 命令字符串 /// 参数 /// 受影响的行数 int ExecuteSqlCommand(TransactionalBehavior transactionalBehavior, string sql, params object[] parameters); /// /// 对数据库执行给定的 DDL/DML 命令返回reader。 /// /// 命令字符串 /// reader委托 void ExecuteReader(string sql, ReaderColumn[] readerColumns, Action readerAction); /// /// 对数据库执行给定的 DDL/DML 命令返回reader。 /// /// 命令字符串 /// 参数 /// reader委托 void ExecuteReader(string sql, ReaderColumn[] readerColumns, DbParameter[] parameters, Action readerAction); /// /// 对数据库执行给定的 DDL/DML 命令返回reader。 /// /// 命令类型 /// 命令字符串 /// 参数 /// reader委托 void ExecuteReader(CommandType commandType, string sql, ReaderColumn[] readerColumns, DbParameter[] parameters, Action readerAction); /// /// 创建一个原始 SQL 查询,该查询将返回给定泛型类型的元素。 /// /// 查询所返回对象的类型 /// SQL 查询字符串 /// 要应用于 SQL 查询字符串的参数 /// //IEnumerable SqlQuery(string sql, params object[] parameters); /// /// 创建一个原始 SQL 查询,该查询将返回给定类型的元素。 /// /// 查询所返回对象的类型 /// SQL 查询字符串 /// 要应用于 SQL 查询字符串的参数 /// IEnumerable SqlQuery(Type elementType, string sql, ReaderColumn[] readerColumns, params Object[] parameters); /// /// 对数据库执行给定的 DDL/DML 命令。 /// /// 命令类型 /// 命令字符串 /// 参数 /// int ExecuteNonQuery(CommandType commandType, string sql, ReaderColumn[] readerColumns, DbParameter[] parameters); /// /// 获取数据库连接对象 /// /// 数据库类型 /// 连接字符串 DbConnection InitDbConnection(DataBaseType dataBaseType, string connString); /// /// 执行查询,并返回查询所返回的结果集中第一行的第一列。 所有其他的列和行将被忽略。 /// /// 数据库类型 /// 连接字符串 /// sql 类型 /// sql /// 参数 object ExecuteScalarByConn(DataBaseType dataBaseType, string connString, CommandType commandType, string sql, DbParameter[] dbParameters); /// /// 执行查询,并返回查询所返回的结果集中第一行的第一列。 所有其他的列和行将被忽略。 /// /// 数据库类型 /// 数据库连接对象 /// sql 类型 /// sql /// 参数 /// 是否关闭连接 object ExecuteScalarByConn(DataBaseType dataBaseType, DbConnection conn, CommandType commandType, string sql, bool close = true, params DbParameter[] dbParameters); /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取Reader。 /// /// 数据库类型 /// 连接对象 /// sql 类型 /// sql /// 参数 /// 分页索引 从1开始 /// 每页条数 必填 /// 执行委托 /// 是否关闭连接 void ExecuteReaderPageByConn(DataBaseType dataBaseType, DbConnection conn, CommandType commandType, string sql, DbParameter[] dbParameters, int pageIndex, int pageLimit, Action readerAction , bool close = true); /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取Reader。 /// /// 数据库类型 /// 连接对象 /// 指令类型 /// SQL语句 /// 参数 /// 是否关闭连接 /// 委托 void ExecuteReaderByConn(DataBaseType dataBaseType, DbConnection conn, CommandType commandType, string sql, DbParameter[] dbParameters, Action readerAction, bool close = true); /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令。 /// /// 数据库类型 /// 连接字符串 /// sql 类型 /// sql /// 参数 void ExecuteNonQueryByConn(DataBaseType dataBaseType, string connString, CommandType commandType, string sql, DbParameter[] dbParameters); /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令。 /// /// 数据库类型 /// 连接字符串 /// sql 类型 /// sql /// 参数 void ExecuteNonQueryByConn(DataBaseType dataBaseType, DbConnection conn, CommandType commandType, string sql, DbParameter[] dbParameters, bool close = true); /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取Reader。 /// /// 数据库类型 /// 连接字符串 /// sql 类型 /// sql /// 参数 /// 执行委托 void ExecuteReaderByConn(DataBaseType dataBaseType, string connString, CommandType commandType, string sql, DbParameter[] dbParameters, Action readerAction); /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取Reader。 /// /// 数据库类型 /// 连接字符串 /// sql 类型 /// sql /// 参数 /// 分页索引 从1开始 /// 每页条数 必填 /// 执行委托 void ExecuteReaderPageByConn(DataBaseType dataBaseType, string connString, CommandType commandType, string sql, DbParameter[] dbParameters, int pageIndex, int pageLimit, Action readerAction); /// /// 根据数据库连接对数据库执行给定的 DDL/DML 命令获取数据总条数。 /// /// 数据库类型 /// 连接字符串 /// sql 类型 /// sql /// 参数 /// 数据总条数 int GetSqlCountByConn(DataBaseType dataBaseType, string connString, CommandType commandType, string sql, DbParameter[] dbParameters); string GetRuleCodes(CodeRuleParam param); } }