MVC3中EF实现的CRUD操作

 public class HomeController : Controller
{
//
// GET: /Home/
CarModelContainer db = new CarModelContainer(); #region 查询全部 +Index()
public ActionResult Index()
{ List<CarModel> list = (from c in db.CarModel select c).ToList();
//ViewData["DataList"] = list; 上下两种效果一样 都是为了传递数据到前台
return View(list); //这样传输的是强类型的数据 在前台通过Model获取
}
#endregion #region 加入信息 +Create() [HttpGet]
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(CarModel car)
{
if (ModelState.IsValid) //后台的验证信息
{
db.CarModel.AddObject(car);
db.SaveChanges();
return RedirectToAction("Index"); }
else
{
return View(car);
} }
#endregion #region 编辑信息 +Edit()
[HttpGet]
public ActionResult Edit(int id)
{
CarModel car=(from a in db.CarModel
where a.ID==id
select a).FirstOrDefault(); if (car==null)
{
return RedirectToAction("Index"); }
return View(car);
}
[HttpPost]
public ActionResult Edit(CarModel car)
{
try
{
//第一种方式 使用LinQ查询出要编辑的对象
//CarModel model=(from a in db.CarModel
// where a.ID==car.ID
// select a).FirstOrDefault(); //另外一种方式 创建一个所以要加入的对象 car中的实体属性 系统会自己主动检索得到相应的值
CarModel model = new CarModel() { ID=car.ID};
db.CarModel.Attach(model); UpdateModel(model);
db.SaveChanges();
return RedirectToAction("index");
}
catch (Exception )
{
ModelState.AddModelError("","改动失败。请查看具体错误信息"); }
return View(car); } #endregion #region 删除信息 +Delete()
public ActionResult Delete(int id)
{
CarModel car = (from a in db.CarModel
where a.ID == id
select a).FirstOrDefault();
db.CarModel.DeleteObject(car);
db.SaveChanges();
return RedirectToAction("index");
}
#endregion }

MVC 4中EF实现的CRUD操作

 //加入实体
public bool AddEntity(Model.Customer entity)
{
Hotel.Model.HotelModelContainer db = new Model.HotelModelContainer();
db.Customer.Add(entity);
int count = db.SaveChanges();
if (count > 0)
{
return true;
}
return false; }
//删除实体
public bool DeleteEntity(Model.Customer entity)
{
Hotel.Model.HotelModelContainer db = new Model.HotelModelContainer();
Customer cus = db.Customer.Where<Customer>(c => c.ID == entity.ID).FirstOrDefault<Customer>();
if (cus != null)
{
db.Customer.Remove(cus); }
int count = db.SaveChanges();
if (count > 0)
{
return true;
}
return false;
}
//更新实体
public bool UpdateEntity(Model.Customer entity)
{
Hotel.Model.HotelModelContainer db = new Model.HotelModelContainer();
// DbEntityEntry<Customer> entry = db.Entry<Customer>(entity);
//entry.State = System.Data.EntityState.Unchanged;
//entry.Property("CustomerName").IsModified = true;
// entry.Property("Phone").IsModified = true;</span>
db.Entry(entity).State = EntityState.Modified;
int count = db.SaveChanges();
if (count > 0)
{
return true;
}
return false; } //查询数据
public IQueryable<Model.Customer> LoadEntities(Func<Model.Customer, bool> whereLambda)
{
HotelModelContainer db = new HotelModelContainer();
return db.Customer.Where<Customer>(whereLambda).AsQueryable<Customer>();
}
//查询分页数据并排序
public IQueryable<Customer> LoadPageEntities<s>(Func<Customer, bool> whereLambda, int pageSize, int pageIndex, out int totalCount, Func<Customer, s> orderByLambda)
{
HotelModelContainer db = new HotelModelContainer();
totalCount = db.Customer.Where<Customer>(whereLambda).Count();
IQueryable<Customer> customers = db.Customer.Where<Customer>(whereLambda)
.OrderBy<Customer, s>(orderByLambda)
.Skip<Customer>(pageSize * (pageIndex - 1))
.Take<Customer>(pageSize)
.AsQueryable<Customer>();
return customers;
}
//依照编号删除
public bool DeleteEntity(object Id)
{
Hotel.Model.HotelModelContainer db = new Model.HotelModelContainer();
Customer cus = db.Customer.Where<Customer>(c => c.ID == (int)Id).FirstOrDefault<Customer>();
if (cus != null)
{
db.Customer.Remove(cus); }
int count = db.SaveChanges();
if (count > 0)
{
return true;
}
return false;
}

MVC3和MVC4中CRUD操作的更多相关文章

  1. mybatis中crud操作范例

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...

  2. Bootstrap+Knockout.JS+ASP.Net MVC3+PetaPOCO实现CRUD操作

    Bootstrap+Knockout.JS+ASP.Net MVC3+PetaPOCO实现CRUD操作 1.需求: 1.1)页面要美观大气 1.2)前端代码要简洁清晰,要用MVC或是MVVM框架 1. ...

  3. [读书笔记] 四、SpringBoot中使用JPA 进行快速CRUD操作

    通过Spring提供的JPA Hibernate实现,进行快速CRUD操作的一个栗子~. 视图用到了SpringBoot推荐的thymeleaf来解析,数据库使用的Mysql,代码详细我会贴在下面文章 ...

  4. ASP.NET MVC4中使用NHibernate

    ASP.NET MVC4中使用NHibernate 1:下载安装NHibernate 打开 VS 2012新建一个 MVC4项目. 在项目名称上右击选择Manage NuGet Packages.你会 ...

  5. ASP.NET MVC4中对JS和CSS的引用

    https://www.cnblogs.com/madyina/p/3702314.html ASP.NET MVC4中对JS和CSS的引用又做了一次变化,在MVC3中我们这样引用资源文件: < ...

  6. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  7. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  8. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

  9. 【翻译】MongoDB指南/CRUD操作(一)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...

随机推荐

  1. ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解

    原文 ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解 在教程的这一部分,我们将研究一下自动生成的 Details 和Delete 方法. Details 方法 打开M ...

  2. php抓取ajax页面返回图片。

    要抓取的页面:http://pic.hao123.com/ 当我们往下滚动的时候,图片是用ajax来动态获取的.这就需要我们仔细分析页面了. 可以看到,异步加载的ajax文件为: http://pic ...

  3. python _thread模块使用

    python关于线程管理的有2个类,_thread(在2.x的版本中叫thread)和threading. # encoding: UTF-8 import thread import time   ...

  4. ADB logcat 过滤方法(抓取日志)

    1. Log信息级别 Log.v- VERBOSE  : 黑色 Log.d- DEBUG  : 蓝色 Log.i- INFO  : 绿色 Log.w- WARN  : 橙色 Log.e- ERROR ...

  5. Android --Vibrator--震动服务

    1.取得震动服务的句柄 vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);或者vibrator = (Vibrator)getAppli ...

  6. sql基础,必须会的————随便整理、杂乱无章

    1.sqlserver2008r2的安装 2.数据库与表的建立.增加.删除.修改. 3,索引的概念,包括聚集与非聚集的区别.全文索引的建立与如何使用全文索引. 4,重新生成索引,重新组织索引. 5,建 ...

  7. BZOJ 1475: 方格取数( 网络流 )

    本来想写道水题....结果调了这么久!就是一个 define 里面少加了个括号 ! 二分图最大点权独立集...黑白染色一下 , 然后建图 : S -> black_node , white_no ...

  8. Linux下Nginx+tomcat应用系统性能优化

    软件环境及服务器配置如下: Linux rh6.3,Tomcat7.0.29,Nginx1.2.7 mysql5.1,jdk1.6.0 mysql5.1 memcached 1.4.15 Xeno 2 ...

  9. 《高质量程序设计指南:C++/C语言》面试题整理

    本试题仅用于考查C++/C程序员的基本编程技能.内容限于C++/C常用 语法,不涉及 数据结构. 算法以及深奥的语法.考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软 ...

  10. Java中StringBuilder的清空方法比較

    StringBuilder 没有提供clear或empty方法. 清空有3种方法: 1)新生成一个,旧的由系统自己主动回收 2)使用delete 3)使用setLength 将三种方法循环1000万次 ...