数据操作层,泛型基接口的设计
2014-06-21 15:18
225 查看
using System; using System.Linq; using System.Linq.Expressions; namespace Tking.OA.IDAL { /// <summary> /// 数据驱动层的抽象,泛型基接口设计。数据持久层的实现技术,可以是:Dapper、Ado.Net、EntityFramework、NHibernate... /// </summary> /// <typeparam name="T">实体</typeparam> public interface IBaseDAO<T> where T : class,new() { /// <summary> /// 添加数据 /// </summary> T Add(T m); /// <summary> /// 删除数据 /// </summary> bool Delete(dynamic id); /// <summary> /// 更新数据 /// </summary> bool Update(T m); /// <summary> /// 根据主键获取一条数据 /// </summary> T GetById(dynamic id); /// <summary> /// 根据条件获取数据 /// </summary> /// <param name="whereLambda">查询表达式</param> IQueryable<T> GetList(Expression<Func<T, bool>> whereLambda); /// <summary> /// 根据条件获取分页数据列表 /// </summary> /// <typeparam name="S">排序的关键字,由实体属性决定</typeparam> /// <param name="pageSize">页显示记录数</param> /// <param name="pageIndex">页码</param> /// <param name="total">总数据条数</param> /// <param name="whereLambda">查询表达式</param> /// <param name="orderByLambda">排序表达式</param> /// <param name="isAsc">是否降序获取</param> IQueryable<T> GetListByPage<S>(int pageIndex, int pageSize, out int total, Expression<Func<T, bool>> whereLambda, Expression<Func<T, S>> orderByLambda, bool isAsc); /// <summary> /// 用于控制数据的批量提交 /// </summary> int SaveChanges(); } }
相关文章推荐
- 本人初学设计模式时写的一个支持多数据库的数据访问接口
- 数据接口设计中遗漏的版本差异
- 设计递归数据类型接口的原则
- 数据访问接口设计思考
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [5] 版本设计分析及数据表设计
- web组件设计,利用接口(IPostBackDataHandler)产生数据回传的问题
- 设计一个接口,返回一组三角形的有序的数据集合
- 以Python为基础的REST(JSON为交换数据)接口的测试框架设计(二)-JSON的修改
- 以Python为基础的REST(JSON为交换数据)接口的测试框架设计(一)
- 数据接口设计中遗漏的版本差异
- FPGA 设计的四种常用思想与技巧(三)--数据接口的同步方法
- 使用silverlight构建一个工作流设计器(十七)-持久化数据到数据库—设计webservices接口
- 以Python为基础的REST(JSON为交换数据)接口的测试框架设计(三)-JSON的修改的难点
- 设计模式实践-反射到所有接口实现类实践工厂方法,页面中有大量计算数据时设计实践
- 数据接口设计中遗漏的版本差异
- 接口设计:以数据为中心,从需求和变化的角度考虑
- JQuery Smart UI 简介(六) — 框架设计【后篇】(数据接口、后台框架)[简介系列完结]
- 数据采集接口设计
- 接口设计与数据同步解决方案小结