public bool AddEntity(Customer entity)//添加实体
  {
      MyHotelModelContainer hotelDB = new MyHotelModelContainer();//定义上下文实体
      if (entity.Id == Guid.Empty)
      {
          entity.Id = Guid.NewGuid();
      }
      hotelDB.Customer.AddObject(entity);//调用添加实体方法
      int count = hotelDB.SaveChanges();
      if (count > 0)
      {
          return true;
      }
      return false;
  }
 
  public bool UpdateEntity(Customer entity)//更新实体
  {
      bool result = false;
      MyHotelModelContainer hotelDB = new MyHotelModelContainer();
      hotelDB.Customer.Attach(entity);
      hotelDB.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified);//调用更新实体发法
      int count = hotelDB.SaveChanges();
      if (count > 0)
      {
          result = true;
      }
      return result;
   
  }
 
  public bool DeleteEntity(Guid Id)//根具指定id删除一个实体
  {
      bool result = false;
      MyHotelModelContainer hoteDB = new MyHotelModelContainer();
      //根据id查询出要删除的实体
      var tempDelete = hoteDB.Customer.Where<Customer>(c => c.Id == Id).FirstOrDefault<Customer>();<span style="white-space:pre">    </span>
      if (tempDelete != null)//删除之前的判断
      {
          hoteDB.Customer.DeleteObject(tempDelete);//调用删除实体方法
          var count = hoteDB.SaveChanges();
          if (count > 0)
          result = true;
      }
      return result;
  }
 
  public IQueryable<Customer> GetByWhere(Func<Customer, bool> whereLambda)//根据某种条件等到实体集合  <span style="font-size:12px; font-family:Arial,Helvetica,sans-serif">IQueryable集合可以实现延迟加载功能</span>
  {<span style="white-space:pre">   </span>
      MyHotelModelContainer hoteDB = new MyHotelModelContainer();
      var temp = hoteDB.Customer.Where<Customer>(whereLambda).AsQueryable<Customer>();
      return temp;
  }
 
  public IQueryable<Customer> GetPageEntity(Func<Customer, bool> whereLambda, int? pageSize, int? pageIndex)//实现分页的方法
  {
      MyHotelModelContainer hotelDB = new MyHotelModelContainer();
      var temp = hotelDB.Customer
          .Where<Customer>(whereLambda)
          .OrderBy(c => c.FirstName)
          .Skip<Customer>(pageSize.Value * (pageIndex.Value - 1))
          .Take<Customer>(pageSize.Value)
          .AsQueryable<Customer>();
      return temp;
  }
 
 
  public long GetCount(Func<Customer, bool> whereLambda)//得到中共多少条数据
  {
      MyHotelModelContainer hotelDB = new MyHotelModelContainer();
      return hotelDB.Customer.Where<Customer>(whereLambda).Count();
  }

Entity FrameWork实现增、删、改、分页的数据层代码实现的更多相关文章

  1. Entity Framework DBContext 增删改查深度解析

    Entity Framework DBContext 增删改查深度解析 有一段时间没有更新博客了,赶上今天外面下雨,而且没人约球,打算把最近对Entity Framework DBContext使用的 ...

  2. C# ADO.NET (sql语句连接方式)(增,删,改)

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  3. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  4. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  5. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  6. ADO.NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...

  7. [转]在Entity Framework中使用LINQ语句分页

    本文转自:http://diaosbook.com/Post/2012/9/21/linq-paging-in-entity-framework 我们知道,内存分页效率很低.并且,如果是WebForm ...

  8. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  9. 第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据

    第18课-数据库开发及ado.net 连接数据库.增.删.改向表中插入数据并且返回自动编号.SQLDataReade读取数据 ADO.NET 为什么要学习? 我们要搭建一个平台(Web/Winform ...

随机推荐

  1. C++ string的用法

    之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是 ...

  2. Oracle PLSQL Demo - 09.Open、Fetch遍历游标[Open, Fetch, Close Record CURSOR]

    declare r_emp scott.emp%rowtype; cursor cur_emp is select t.* from scott.emp t; begin open cur_emp; ...

  3. Spark学习笔记总结-超级经典总结

    Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用.减少了延时处理,提高 ...

  4. spring容器的配置和springmvc的配置

    spring容器的配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h ...

  5. C#通过“委托和事件”的方式实现进程监控并与“普通方式”对比

    今天重新学习了一下观察者模式,对我的思路产生了启发.进程监控程序之前写过几个,这回换一种思路,改用委托和事件来实现.我已经用序号将关键的几步标注,方便大家理顺思路.代码如下: using System ...

  6. jsp c标签不遍历的方法

    生产中遇到过不需要遍历的事情. 一般遍历必须要 <c:forEach items="${resultObj.xxx}" var="data" varSta ...

  7. Scala之::的研究

    一个非常细节的问题,简单总结一下.::在Scala里有两种含义.一种是List集合的一个方法,用于把一个元素加入到集合的前面:还有一种表示一个非空的List集合,往往应用于模式匹配中.本文原文出处: ...

  8. EFM32 DMA/PRS例程

    /**************************************************************************//**  * @file  * @brief H ...

  9. rp2833 网卡以及串口与接插件位置关系

    P13     eth0  (电口--兼容光口,如果使用光口,请将去掉U31以及P13) p12     eth1 P9     /dev/ttyS3 调试口 P10-1  /dev/ttyS2  r ...

  10. 奇妙的go语言(面向对象)

    [ 声明:版权全部.欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 有过C++语言学习经历的朋友都知道.面向对象主要包含了三个基本特征:封装.继承和多态.封装,就 ...