158 lines
5.9 KiB
C#
158 lines
5.9 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Data;
|
|||
|
using System.Data.Common;
|
|||
|
using System.Linq;
|
|||
|
using System.Linq.Expressions;
|
|||
|
using Learun.Util;
|
|||
|
|
|||
|
namespace Learun.DataBase.Repository
|
|||
|
{
|
|||
|
public interface IRepository
|
|||
|
{
|
|||
|
DbConnection getDbConnection();
|
|||
|
|
|||
|
IRepository BeginTrans();
|
|||
|
|
|||
|
void Commit();
|
|||
|
|
|||
|
void Rollback();
|
|||
|
|
|||
|
int ExecuteBySql(string strSql);
|
|||
|
|
|||
|
int ExecuteBySql(string strSql, object dbParameter);
|
|||
|
|
|||
|
int ExecuteByProc(string procName);
|
|||
|
|
|||
|
int ExecuteByProc(string procName, object dbParameter);
|
|||
|
|
|||
|
T ExecuteByProc<T>(string procName) where T : class;
|
|||
|
|
|||
|
T ExecuteByProc<T>(string procName, object dbParameter) where T : class;
|
|||
|
|
|||
|
IEnumerable<T> QueryByProc<T>(string procName) where T : class;
|
|||
|
|
|||
|
IEnumerable<T> QueryByProc<T>(string procName, object dbParameter) where T : class;
|
|||
|
|
|||
|
int Insert<T>(T entity) where T : class;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 仓储下的方法。可以动态的根据第一个参数的T,来插入对应的表
|
|||
|
/// </summary>
|
|||
|
/// <typeparam name="T"></typeparam>
|
|||
|
/// <param name="entity"></param>
|
|||
|
/// <param name="tablename"></param>
|
|||
|
/// <returns></returns>
|
|||
|
int InsertByNoMap<T>(T entity, string tablename) where T : class;
|
|||
|
/// <summary>
|
|||
|
/// 仓储下的方法。可以动态的根据第一个参数的T,来插入对应的表
|
|||
|
/// </summary>
|
|||
|
/// <typeparam name="T"></typeparam>
|
|||
|
/// <param name="entity"></param>
|
|||
|
/// <param name="tablename"></param>
|
|||
|
/// <returns></returns>
|
|||
|
int InsertByNoMap<T>(List<T> entities, string tablename) where T : class;
|
|||
|
|
|||
|
int Insert<T>(List<T> entity) where T : class;
|
|||
|
|
|||
|
int Delete<T>(T entity) where T : class;
|
|||
|
|
|||
|
int Delete<T>(List<T> entity) where T : class;
|
|||
|
|
|||
|
int Delete<T>(Expression<Func<T, bool>> condition) where T : class, new();
|
|||
|
|
|||
|
int Update<T>(T entity) where T : class;
|
|||
|
/// <summary>
|
|||
|
/// 仓储下的方法。可以动态的根据第一个参数的T,来更新对应的表
|
|||
|
/// </summary>
|
|||
|
/// <typeparam name="T"></typeparam>
|
|||
|
/// <param name="entity"></param>
|
|||
|
/// <param name="tablename"></param>
|
|||
|
/// <returns></returns>
|
|||
|
int UpdateByNoMap<T>(T entity, string tablename, string pkcolumn) where T : class;
|
|||
|
/// <summary>
|
|||
|
/// 仓储下的方法。可以动态的根据第一个参数的T,来更新对应的表
|
|||
|
/// </summary>
|
|||
|
/// <typeparam name="T"></typeparam>
|
|||
|
/// <param name="entity"></param>
|
|||
|
/// <param name="tablename"></param>
|
|||
|
/// <returns></returns>
|
|||
|
int UpdateByNoMap<T>(List<T> entities, string tablename, string pkcolumn) where T : class;
|
|||
|
int UpdateEx<T>(T entity) where T : class;
|
|||
|
|
|||
|
int Update<T>(List<T> entity) where T : class;
|
|||
|
/// <summary>
|
|||
|
/// 仓储下的方法。根据主键值查找某一个实体
|
|||
|
/// </summary>
|
|||
|
/// <typeparam name="T"></typeparam>
|
|||
|
/// <param name="keyValue"></param>
|
|||
|
/// <returns></returns>
|
|||
|
T FindEntity<T>(object keyValue) where T : class;
|
|||
|
|
|||
|
T FindEntity<T>(Expression<Func<T, bool>> condition) where T : class, new();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 仓储下的方法。根据sql查找某一个实体
|
|||
|
/// </summary>
|
|||
|
/// <typeparam name="T"></typeparam>
|
|||
|
/// <param name="strSql"></param>
|
|||
|
/// <param name="dbParameter">new { account = account },类似这样。会替换sql中@account的字眼</param>
|
|||
|
/// <returns></returns>
|
|||
|
T FindEntity<T>(string strSql, object dbParameter) where T : class, new();
|
|||
|
|
|||
|
IQueryable<T> IQueryable<T>() where T : class, new();
|
|||
|
|
|||
|
IQueryable<T> IQueryable<T>(Expression<Func<T, bool>> condition) where T : class, new();
|
|||
|
|
|||
|
IEnumerable<T> FindList<T>() where T : class, new();
|
|||
|
/// <summary>
|
|||
|
/// 仓储下的方法。根据sql查找集合
|
|||
|
/// </summary>
|
|||
|
/// <typeparam name="T"></typeparam>
|
|||
|
/// <param name="strSql"></param>
|
|||
|
/// <returns></returns>
|
|||
|
IEnumerable<T> FindList<T>(string strSql) where T : class;
|
|||
|
/// <summary>
|
|||
|
/// 仓储下的方法。根据sql查找集合
|
|||
|
/// </summary>
|
|||
|
/// <typeparam name="T"></typeparam>
|
|||
|
/// <param name="strSql"></param>
|
|||
|
/// <param name="dbParameter">参数,到时候sql里的@xxx会被xxx替换。new { TemplateFileID = keyValue }</param>
|
|||
|
/// <returns></returns>
|
|||
|
IEnumerable<T> FindList<T>(string strSql, object dbParameter) where T : class;
|
|||
|
|
|||
|
IEnumerable<T> FindList<T>(Pagination pagination) where T : class, new();
|
|||
|
|
|||
|
IEnumerable<T> FindList<T>(Expression<Func<T, bool>> condition, Pagination pagination) where T : class, new();
|
|||
|
|
|||
|
IEnumerable<T> FindList<T>(Expression<Func<T, bool>> condition) where T : class, new();
|
|||
|
|
|||
|
IEnumerable<T> FindList<T>(string strSql, Pagination pagination) where T : class;
|
|||
|
/// <summary>
|
|||
|
/// 仓储下的方法。根据sql查找集合。并进行分页
|
|||
|
/// </summary>
|
|||
|
/// <typeparam name="T"></typeparam>
|
|||
|
/// <param name="strSql"></param>
|
|||
|
/// <param name="dbParameter"></param>
|
|||
|
/// <param name="pagination">分页对象。包括每页多少 排序方式等</param>
|
|||
|
/// <returns></returns>
|
|||
|
IEnumerable<T> FindList<T>(string strSql, object dbParameter, Pagination pagination) where T : class;
|
|||
|
|
|||
|
DataTable FindTable(string strSql);
|
|||
|
|
|||
|
DataTable FindTable(string strSql, object dbParameter);
|
|||
|
|
|||
|
DataTable FindTable(string strSql, Pagination pagination);
|
|||
|
|
|||
|
DataTable FindTable(string strSql, object dbParameter, Pagination pagination);
|
|||
|
|
|||
|
object FindObject(string strSql);
|
|||
|
|
|||
|
object FindObject(string strSql, object dbParameter);
|
|||
|
|
|||
|
IEnumerable<T> GetDBTable<T>() where T : class, new();
|
|||
|
|
|||
|
IEnumerable<T> GetDBTableFields<T>(string tableName) where T : class, new();
|
|||
|
}
|
|||
|
}
|