Entity Framework(1)基础类接口
来源:互联网 发布:python post本地文件 编辑:程序博客网 时间:2024/05/18 22:42
ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。
Entity Framework 利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象 (entity),而数据字段都转换为属性 (property),关系则转换为结合属性 (association),让数据库的 E/R 模型完全的转成对象模型。
但是我们在平时的开发中会对多张不同的表做同样的增删改查操作,为了偷懒,我们可以将这些同样的操作进行封装,编写成一个EF的基础类,以后我们开发就可以省去编写重复的代码,只需要直接调用即可。
接下来进入正题,我们先定义接口:
/// <summary> /// EF基础类接口 /// </summary> /// <typeparam name="T">数据类型</typeparam> public interface IEntityFramework<T> where T : class { #region 添加 /// <summary> /// 添加一条数据 /// </summary> /// <param name="model">添加的对象</param> /// <returns>影响行数</returns> int InsertByModel(T model); /// <summary> /// 添加多条数据 /// </summary> /// <param name="modelList">添加的对象的集合</param> /// <returns>影响行数</returns> int InsertByList(List<T> modelList); #endregion #region 删除 /// <summary> /// 删除一条数据 /// </summary> /// <param name="model">删除的对象</param> /// <returns>影响行数</returns> int DeleteByModel(T model); /// <summary> /// 删除多条记录 /// </summary> /// <param name="modelList">删除的对象的集合</param> /// <returns>影响行数</returns> int DeleteByList(List<T> modelList); /// <summary> /// 根据条件删除 /// </summary> /// <param name="where">条件</param> /// <returns>影响行数</returns> int DeleteByWhere(Expression<Func<T, bool>> where); #endregion #region 修改 /// <summary> /// 修改一条数据 /// </summary> /// <param name="model">修改的对象</param> /// <param name="propertys">需要修改的属性</param> /// <returns>影响行数</returns> int UpdateByModel(T model, params string[] propertys); /// <summary> /// 修改多条数据 /// </summary> /// <param name="modelList">修改的对象的集合</param> /// <param name="propertys">需要修改的属性</param> /// <returns>影响行数</returns> int UpdateByList(List<T> modelList, params string[] propertys); /// <summary> /// 根据条件更新 /// </summary> /// <param name="where">条件</param> /// <param name="model">修改的对象的集合</param> /// <param name="propertys">需要修改的属性</param> /// <returns>影响行数</returns> int UpdateByWhere(Expression<Func<T, bool>> where, T model, params string[] propertys); #endregion #region 查询 /// <summary> /// 是否存在记录 /// </summary> /// <param name="where">条件</param> /// <param name="count">条数</param> /// <returns>是否存在</returns> bool Exists(Expression<Func<T, bool>> where, out int count); /// <summary> /// 获取前几条数据 /// </summary> /// <typeparam name="Key">表</typeparam> /// <param name="where">条件</param> /// <param name="orderBy">排序的字段</param> /// <param name="isAsc">true顺序,false倒序</param> /// <param name="top">前n条</param> /// <returns></returns> IQueryable<T> QureyTop<Key>(Expression<Func<T, bool>> where, Expression<Func<T, Key>> orderBy, bool isAsc, int top, out int total); /// <summary> /// 获取总条数 /// </summary> /// <param name="where">条件</param> /// <returns>总条数</returns> int Total(Expression<Func<T, bool>> where); /// <summary> /// 条件查询带分页 /// </summary> /// <typeparam name="Key">用于排序的属性</typeparam> /// <param name="where">条件</param> /// <param name="orderBy">排序</param> /// <param name="isAsc">true顺序,false倒序</param> /// <param name="pageIndex">页数</param> /// <param name="pageSize">每页条数</param> /// <param name="total">总数据量</param> /// <returns></returns> IQueryable<T> PagingQuery<Key>(Expression<Func<T, bool>> where, Expression<Func<T, Key>> orderBy, bool isAsc, int pageIndex, int pageSize, out int total); #endregion }
阅读全文
0 0
- Entity Framework(1)基础类接口
- Entity Framework(一)基础
- Entity Framework基础
- Entity Framework 基础
- Entity Framework 基础
- Entity Framework 基础
- Entity Framework 基础
- Entity Framework 基础
- Entity Framework 4.1 之一 : 基础
- Entity Framework 4.1 之一 : 基础
- 14.C#:Entity Framework基础
- ADO.NET Entity Framework 学习(1)
- Entity Framework 入门笔记(1)
- 一步一步学Entity FrameWork 4(1)
- Entity Framework入门(1)---简介
- Entity Framework入门(1)---开发模式
- 实体框架- Entity Framework 基础篇
- Day 1 at Entity Framework
- groovy操作map,json
- Tactile sensor lets robots gauge objects’ hardness and manipulate small tools
- 会场安排 最少用几个会场 贪心
- 软件项目版本号的命名规则及格式
- 图像处理的一般流程(opencv)
- Entity Framework(1)基础类接口
- 二分查找算法,斐波那契数列的递归及非递归。(分析时间复杂度及空间复杂度)
- BigDecimal类型比较数字大小,invalue方法数值大于9位变成负数
- 脚本无法挂载软链接的问题
- 日志-php-fpm慢日志查询
- ActiveMQ入门案例-yellowcong
- Unity中打包发布Apk时版本更新产生的问题
- Android四种事件处理方式
- Windows下安装Docker