EF快速开发定义数据接口类(转)
- using System;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Data.Objects;
- namespace HENANLUHENG.Framework.EntityRepository
- {
- public interface IRepository<T> where T : class, new()
- {
- /// <summary>
- /// 返回一个 System.Linq.IQueryable
- /// </summary>
- /// <returns>一个 System.Linq.IQueryable,包含满足由 predicate 指定的条件的元素</returns>
- IQueryable<T> All();
- /// <summary>
- /// 返回一个 System.Linq.IQueryable,包含满足由 predicate 指定的条件的元素
- /// </summary>
- /// <param name="predicate">用于测试每个元素是否满足条件的函数</param>
- /// <returns>一个 System.Linq.IQueryable,包含满足由 predicate 指定的条件的元素</returns>
- IQueryable<T> Where(Expression<Func<T, bool>> predicate);
- /// <summary>
- /// 返回一个 System.Linq.IQueryable,包含满足由 predicate 和 分页参数 指定的条件的元素,并根据键对其元素排序
- /// </summary>
- /// <param name="predicate">用于测试每个元素是否满足条件的函数</param>
- /// <param name="pageSize">页大小</param>
- /// <param name="pageIndex">页码</param>
- /// <param name="orderingWhereor">用于从元素中提取键的函数</param>
- /// <param name="orderBy">排序类型</param>
- /// <param name="recCount">总数量</param>
- /// <returns>一个 System.Linq.IQueryable,包含满足由 predicate 和 分页参数 指定的条件的元素,并根据键对其元素排序</returns>
- IQueryable<T> Where<TKey>(Expression<Func<T, bool>> predicate, int pageSize, int pageIndex, Expression<Func<T, TKey>> orderingWhereor, OrderingOrders orderBy, out int recCount);
- /// <summary>
- /// 返回一个 System.Linq.IQueryable,包含满足由 predicate 指定的条件的元素,并根据键对其元素排序
- /// </summary>
- /// <param name="predicate">用于测试每个元素是否满足条件的函数</param>
- /// <param name="orderingWhereor">用于从元素中提取键的函数</param>
- /// <param name="orderBy">排序</param>
- /// <returns>一个 System.Linq.IQueryable,包含满足由 predicate 指定的条件的元素,并根据键对其元素排序</returns>
- IQueryable<T> Where<TKey>(Expression<Func<T, bool>> predicate, Expression<Func<T, TKey>> orderingWhereor, OrderingOrders orderBy);
- /// <summary>
- /// 返回一个 System.Linq.IQueryable,包含满足指定的条件的元素,并根据键对其元素排序
- /// </summary>
- /// <param name="conditions">条件T-Sql语句</param>
- /// <param name="objParams">参数</param>
- /// <returns>一个 System.Linq.IQueryable,包含满足指定的条件的元素,并根据键对其元素排序</returns>
- IQueryable<T> Where(string conditions, ObjectParameter[] objParams = null);
- /// <summary>
- /// 返回一个 System.Linq.IQueryable,包含满足指定的条件的元素,并根据键对其元素排序
- /// </summary>
- /// <param name="conditions">条件T-Sql语句</param>
- /// <param name="pageSize">页大小</param>
- /// <param name="pageIndex">页码</param>
- /// <param name="orderByStr">排序T-Sql语句</param>
- /// <param name="recCount">总数量</param>
- /// <param name="objParams">参数</param>
- /// <returns>一个 System.Linq.IQueryable,包含满足指定的条件的元素,并根据键对其元素排序</returns>
- IQueryable<T> Where(string conditions, int pageSize, int pageIndex, string orderByStr, out int recCount, ObjectParameter[] objParams = null);
- /// <summary>
- /// 返回序列的唯一元素;如果该序列并非恰好包含一个元素,则会引发异常。
- /// </summary>
- /// <param name="predicate">用于测试每个元素是否满足条件的函数</param>
- /// <returns>单个元素</returns>
- T Single(Expression<Func<T, bool>> predicate);
- /// <summary>
- /// 返回序列的唯一元素;如果该序列并非恰好包含一个元素,则会引发异常。
- /// </summary>
- /// <param name="predicate">用于测试每个元素是否满足条件的函数</param>
- /// <param name="orderingWhereor">用于从元素中提取键的函数</param>
- /// <param name="orderBy">排序</param>
- /// <returns>单个元素</returns>
- T Single<TKey>(Expression<Func<T, bool>> predicate, Expression<Func<T, TKey>> orderingWhereor, OrderingOrders orderBy);
- /// <summary>
- /// 返回序列中满足指定条件的唯一元素;如果序列中不包含任何元素,则返回默认值
- /// </summary>
- /// <param name="predicate">用于测试每个元素是否满足条件的函数</param>
- /// <returns>唯一元素</returns>
- T FirstOrDefault(Expression<Func<T, bool>> predicate);
- /// <summary>
- /// 返回序列中满足指定条件的唯一元素;如果序列中不包含任何元素,则返回默认值
- /// </summary>
- /// <param name="predicate">用于测试每个元素是否满足条件的函数</param>
- /// <param name="orderingWhereor">用于从元素中提取键的函数</param>
- /// <param name="orderBy">排序</param>
- /// <returns>唯一元素</returns>
- T FirstOrDefault<TKey>(Expression<Func<T, bool>> predicate, Expression<Func<T, TKey>> orderingWhereor, OrderingOrders orderBy);
- /// <summary>
- /// 返回指定序列中满足条件的元素数量
- /// </summary>
- /// <param name="predicate">用于测试每个元素是否满足条件的函数</param>
- /// <returns>元素数量</returns>
- int Count(Expression<Func<T, bool>> predicate);
- /// <summary>
- /// 将对象添加到当前实体集中的对象上下文
- /// </summary>
- /// <param name="entity">实体对象</param>
- /// <returns>操作是否成功</returns>
- bool Add(T entity);
- /// <summary>
- /// 将对象标记为待删除
- /// </summary>
- /// <param name="entity">实体对象</param>
- /// <returns>操作是否成功</returns>
- bool Delete(T entity);
- /// <summary>
- /// 将满足 指定的条件的元素对象标记为待删除;如果 IsOwnContex == true,将对象保存到数据源
- /// </summary>
- /// <param name="conditions">条件T-Sql语句</param>
- /// <returns>操作是否成功</returns>
- bool Delete(string conditions);
- /// <summary>
- /// 将满足 predicate 指定的条件的元素对象标记为待删除
- /// </summary>
- /// <param name="predicate">用于测试每个元素是否满足条件的函数</param>
- /// <returns>操作是否成功</returns>
- bool Delete(Expression<Func<T, bool>> predicate);
- /// <summary>
- /// 临时把实休对象保存在管理对象中
- /// </summary>
- /// <param name="entity"></param>
- void AddEntity(T entity);
- }
- }
转自:http://www.cnblogs.com/henanluheng/p/3523896.html
EF快速开发定义数据接口类(转)的更多相关文章
- C++:如何正确的定义一个接口类
C++中如何定义接口类?首先给接口类下了定义:接口类应该是只提供方法声明,而自身不提供方法定义的抽象类.接口类自身不能实例化,接口类的方法定义/实现只能由接口类的子类来完成. 而对于C++,其接口类一 ...
- 使用Asp.net WebAPI 快速构建后台数据接口
现在的互联网应用,无论是web应用,还是移动APP,基本都需要实现非常多的数据访问接口.其实对一些轻应用来说Asp.net WebAPI是一个很快捷简单并且易于维护的后台数据接口框架.下面我们来快速构 ...
- GIS应用|快速开发REST数据服务
随着计算机的快速发展,GIS已经在各大领域得到应用,和我们的生活息息相关, 但是基于GIS几大厂商搭建服务,都会有一定的门槛,尤其是需要server,成本高,难度大,这里介绍一种在线GIS云平台,帮你 ...
- Android 开发 SharedPreferences数据会话类模板
简单的模板 public class SPDataSession { private static SPDataSession mSPDataSession; private SharedPrefer ...
- python开发面向对象基础:接口类&抽象类&多态&钻石继承
一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实 ...
- 基于ABP开发框架的技术点分析和项目快速开发实现
在我们开发各种项目应用的时候,往往都是基于一定框架进行,同时配合专用的代码生成工具,都是为了快速按照固定模式开发项目,事半功倍,本篇随笔对基于ABP开发框架的技术点进行分析和ABP框架项目快速开发实现 ...
- Python--抽象类接口类
一. 继承有两种用途: """ 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了 ...
- python之路----继承的抽象类和接口类
抽象类与接口类 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数 ...
- day24-抽象类与接口类
接口类 1.继承有两种用途:一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继 ...
随机推荐
- 对 OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks 一文的理解
一点最重要的学习方法: 当你读一篇论文读不懂时,如果又读了两遍还是懵懵懂懂时怎么办???方法就是别自己死磕了,去百度一下,如果是很好的论文,大多数肯定已经有人读过并作为笔记了的,比如我现在就把我读过 ...
- OneProxy安全策略
set gaccess <groupname> <level> 注意事项– 级别0:没有限制– 级别1:禁止DDL– 级别2:必须要有where条件– 级别4:禁止Delete ...
- 关于启用 HTTPS 的一些经验分享(二)
转载: 关于启用 HTTPS 的一些经验分享(二) 几天前,一位朋友问我:都说推荐用 Qualys SSL Labs 这个工具测试 SSL 安全性,为什么有些安全实力很强的大厂家评分也很低?我认为这个 ...
- 前端MV*框架的意义
经常有人质疑,在前端搞MV*有什么意义?也有人提出这样的疑问:以AngularJS,Knockout,BackBone为代表的MV*框架,它跟jQuery这样的框架有什么区别?我jQuery用得好好的 ...
- logistic原理与实践
逻辑回归模型是一种将影响概率的不同因素结合在一起的指数模型,得到的是0~1之间的概率分布.自变量范围是,值域范围限制在0~1之间.在搜索广告.信息处理和生物统计中有广泛的应用.例如搜索广告的点击率预估 ...
- [hadoop] hadoop-all-in-one-伪分布式安装
hadoop伪分布式-all-in-one安装 #查看hadoop 版本 [root@hadoop-allinone-200-123 bin]# pwd /wdcloud/app/hadoop-2.7 ...
- 限制textarea输入内容长度(多浏览器兼容、鼠标操作可控)
限制textarea的输入内容长度,当从键盘输入,内容长度达到最大值时,只有输入Backspace.Delete.左移动.右移动有效,当用鼠标粘贴内容,则只保留最大值长度的内容.从而控制textare ...
- 一个网络传输框架——zeroMQ 调研笔记
一.它是什么 zeroMQ,一个处理消息传输的库,重点在传输上,看起来它像是在socket上面封装了一层,让我们可以很容易的利用它来做N对M的数据传输,在分布式系统中很方便,在接收端它有round-r ...
- Angular自定义指令directive:scope属性
在AngularJS中,除了内置指令如ng-click等,我们还可以自定义指令.自定义指令,是为了扩展DOM元素的功能.代码中,通过指定directive中的restrict属性,来决定这个指令是作为 ...
- 手机客户端UI测试常见的测试点
1.各种分辨率下,显示正常.现市场上主流的塞班V3系统手机为240*320.320*240.WM系统主要为240*320.320*480.Android系统主要为320*480,Iphone系统为32 ...