You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

212 lines
7.0 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Dapper;
using System.Collections.Generic;
using System.Data;
using System.Threading.Tasks;
namespace Common.Repository.Interface
{
/// <summary>
///
/// </summary>
public interface IDapperDBBase
{
/// <summary>
///
/// </summary>
/// <returns></returns>
IDbConnection GetConn();
/// <summary>
/// 无参数存储过程
/// </summary>
/// <param name="SPName">存储过程名称</param>
/// <returns>返回值List<T></returns>
List<T> QuerySP<T>(string SPName);
/// <summary>
/// 有参数存储过程
/// </summary>
/// <param name="SPName">存储过程名称</param>
/// <returns>返回值List<T></returns>
List<T> QuerySP<T>(string SPName, object parms);
/// <summary>
/// 无参数异步存储过程
/// </summary>
/// <param name="SPName">存储过程名称</param>
/// <returns>返回值List<T></returns>
Task<List<T>> QuerySPAsync<T>(string SPName);
/// <summary>
/// 无参数异步存储过程
/// </summary>
/// <param name="SPName">存储过程名称</param>
/// <returns>返回值List<T></returns>
Task<List<T>> QuerySPAsync<T>(string SPName, object parms);
/// <summary>
///
/// </summary>
/// <param name="SPName"></param>
/// <param name="parms"></param>
/// <returns></returns>
Task<int> ExecSPTransAsync(string SPName, object parms);
/// <summary>
///
/// </summary>
/// <param name="SPName"></param>
/// <param name="parms"></param>
/// <param name="conn"></param>
/// <param name="tran"></param>
/// <returns></returns>
Task<int> ExecSPTransAsync(string SPName, object parms, IDbConnection conn, IDbTransaction tran);
/// <summary>
///
/// </summary>
/// <param name="SPName"></param>
/// <param name="parms"></param>
/// <returns></returns>
Task<int> ExecSPAsync(string SPName, object parms);
/// <summary>
///
/// </summary>
/// <param name="Sql"></param>
/// <param name="parms"></param>
/// <param name="commandType"></param>
/// <returns></returns>
Task<DataSet> QueryDataSetAsync(string Sql, object parms, CommandType commandType);
/// <summary>
///
/// </summary>
/// <param name="insertSql"></param>
/// <param name="parms"></param>
/// <returns></returns>
Task<int> InsertAsync(string insertSql, object parms);
/// <summary>
///
/// </summary>
/// <param name="updateSql"></param>
/// <param name="parms"></param>
/// <returns></returns>
Task<int> UpdateAsync(string updateSql, object parms);
/// <summary>
///
/// </summary>
/// <param name="Id"></param>
/// <param name="deleteSql"></param>
/// <returns></returns>
Task<int> DeleteAsync(int Id, string deleteSql);
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="selectSql"></param>
/// <returns></returns>
Task<List<T>> SelectAsync<T>(string selectSql);
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="Id"></param>
/// <param name="detailSql"></param>
/// <returns></returns>
Task<T> DetailFirstAsync<T>(int Id, string detailSql);
//以下为dapper扩展方法根据实体模型进行CRUD操作
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="id"></param>
/// <returns></returns>
Task<T> QueryOneAsync<T>(int id) where T : class;
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
Task<IEnumerable<T>> QueryAllAsync<T>() where T : class;
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="entitys"></param>
/// <returns></returns>
Task<long> InsertByEntitysAsync<T>(IEnumerable<T> entitys) where T : class;
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="entity"></param>
/// <returns></returns>
Task<long> InsertByEntityAsync<T>(T entity) where T : class;
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="entitys"></param>
/// <returns></returns>
Task<bool> UpdateByEntitysAsync<T>(IEnumerable<T> entitys) where T : class;
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="entity"></param>
/// <returns></returns>
Task<bool> UpdateByEntityAsync<T>(T entity) where T : class;
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="entitys"></param>
/// <returns></returns>
Task<bool> DeleteByEntitysAsync<T>(IEnumerable<T> entitys) where T : class;
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="entity"></param>
/// <returns></returns>
Task<bool> DeleteByEntityAsync<T>(T entity) where T : class;
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql"></param>
/// <param name="parms"></param>
/// <returns></returns>
Task<T> QuerySingleOrDefaultAsync<T>(string sql, object parms);
/// <summary>
/// 默认返回第一条数据
/// </summary>
/// <typeparam name="T">返回类型</typeparam>
/// <param name="sql">查询语句</param>
/// <returns></returns>
Task<T> QueryFirstOrDefaultAsync<T>(string sql);
/// <summary>
///
/// </summary>
/// <param name="querySQL"></param>
/// <returns></returns>
Task<DataTable> QueryToDatableAsync(string querySQL);
/// <summary>
///
/// </summary>
/// <param name="querySQL"></param>
/// <returns></returns>
Task<DataTable> QueryToDatableAsync(string querySQL, DynamicParameters parms);
/// <summary>
/// 执行SQL语句返回结果
/// </summary>
/// <param name="Sql"></param>
/// <param name="parms"></param>
/// <returns></returns>
Task<T> ExecuteScalarAsync<T>(string Sql, object parms);
/// <summary>
/// 执行中包含事务sql
/// </summary>
/// <param name="listSql"></param>
/// <returns></returns>
Task<int> ExecSqlTransAsync(List<string> listSql);
}
}