• 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快速开发定义数据接口类(转)的更多相关文章

  1. C++:如何正确的定义一个接口类

    C++中如何定义接口类?首先给接口类下了定义:接口类应该是只提供方法声明,而自身不提供方法定义的抽象类.接口类自身不能实例化,接口类的方法定义/实现只能由接口类的子类来完成. 而对于C++,其接口类一 ...

  2. 使用Asp.net WebAPI 快速构建后台数据接口

    现在的互联网应用,无论是web应用,还是移动APP,基本都需要实现非常多的数据访问接口.其实对一些轻应用来说Asp.net WebAPI是一个很快捷简单并且易于维护的后台数据接口框架.下面我们来快速构 ...

  3. GIS应用|快速开发REST数据服务

    随着计算机的快速发展,GIS已经在各大领域得到应用,和我们的生活息息相关, 但是基于GIS几大厂商搭建服务,都会有一定的门槛,尤其是需要server,成本高,难度大,这里介绍一种在线GIS云平台,帮你 ...

  4. Android 开发 SharedPreferences数据会话类模板

    简单的模板 public class SPDataSession { private static SPDataSession mSPDataSession; private SharedPrefer ...

  5. python开发面向对象基础:接口类&抽象类&多态&钻石继承

    一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实 ...

  6. 基于ABP开发框架的技术点分析和项目快速开发实现

    在我们开发各种项目应用的时候,往往都是基于一定框架进行,同时配合专用的代码生成工具,都是为了快速按照固定模式开发项目,事半功倍,本篇随笔对基于ABP开发框架的技术点进行分析和ABP框架项目快速开发实现 ...

  7. Python--抽象类接口类

    一. 继承有两种用途: """ 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了 ...

  8. python之路----继承的抽象类和接口类

    抽象类与接口类 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数 ...

  9. day24-抽象类与接口类

    接口类 1.继承有两种用途:一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继 ...

随机推荐

  1. Execl 使用技巧

    1. =COUNTIF(C:C;"*OS7*")   某一列中包含OS7的数量总数138

  2. Datatable+Springmvc+mybatis(分页+排序+搜索)_Jquery

    一.简介 通过Jqury的Datatable插件,构造数据列表,并且增加或者隐藏相应的列,已达到数据显示要求.同时, jQuery Datatable 强大的功能支持:排序,分页,搜索等. 二.前台分 ...

  3. 在 linux 上部署并运行 JavaFX 项目

    环境 redhat 6.4.eclipse安装JavaFX插件 项目详情及代码参见 在linux上配置并创建JavaFX项目 ,该部署即此文章中项目的部署 配置build.fxbuild 生成buil ...

  4. contiki-事件调度

    事件驱动机制广泛应用于嵌入式系统,类似于中断机制,当有事件到来时(比如按键.数据到达),系统响应并处理该事件.相对于轮询机制,事件机制优势很明星,低功耗(系统处于休眠状态,当有事件到达时才被唤醒)和M ...

  5. 【转】 linux内存管理

    一 为什么需要使用虚拟内存 大家都知道,进程需要使用的代码和数据都放在内存中,比放在外存中要快很多.问题是内存空间太小了,不能满足进程的需求,而且现在都是多进程,情况更加糟糕.所以提出了虚拟内存,使得 ...

  6. 如何判断Javascript对象是否存在

    Javascript语言的设计不够严谨,很多地方一不小心就会出错. 举例来说,请考虑以下情况. 现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明.用自然语言描述的算法如下: ...

  7. Java List合并去重

    List A和B A.removeAll(B); A.addAll(B); 例如有如下实体类: /** * hashset是如何保持元素的唯一性呢? * 是通过元素的hashcode和equals来表 ...

  8. 利息?hii

    #include<stdio.h> void main() { for(;;) { float bj,lx=0,ll,d; printf("输入本金:"); scanf ...

  9. Python:dict用法

    dict全称dictionary,使用键-值(key-value)存储,有极快的查找速度. 以下整理几种常用的dict用法 定义 空dict >>> dict={} 普通dict & ...

  10. 错误 java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle

    出现错误: java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle 百度搜 ...