一直在用DHhelper做MVC,感觉好山寨,也不怎么好用。决定开始学EF。
废话不多说开始记笔记。。。。。
EF就是把数据库表,存储过程,视图实例化,通过继承DbContext的一个类来操作数据实例。
创建EF:
实体连接字符串一般选“是”。
这里只勾选需要用到的表,视图和存储过程。
然后就是下一步,下一步,就完成了EF的创建。
EF一般在MVC项目的Model文件夹下,也就是MVC中的model。
使用EF:
有了EF后,Controller就直接可以通过调用继承DbContext类的方法来操作数据库。
查询:
Controller部分
ksoa_lsddEntities db = new ksoa_lsddEntities(); //实例化DbContext对象 List<spkfk> ls = db.spkfk.AsQueryable().ToList(); //查询表,返回表集合 return View(ls);
View部分
@model List<EFtest.Models.spkfk> @{ Layout = "~/Views/template/_tamplate.cshtml"; } <table> @foreach (EFtest.Models.spkfk i in Model) { <tr> <td> @i.spmch </td> </tr> } </table>
新增:
Controller部分
testEFEntities db = new testEFEntities(); //实例化DbContext对象 EFtable e = new EFtable(); //创建新增实例对象 e.goodscode = "YC01"; //新增对象属性赋值 e.goodsname = "乙醇"; //新增对象属性赋值 db.EFtables.Add(e); //新增对象添加到实例化对象集合 db.SaveChanges(); //把修改后的集合保存到数据库
SaveChanges()这个方法很重要,对数据库增删改操作完后都要SaveChanges()把操作在保存到数据库,SaveChanges()返回数据库受影响行数,该操作执行后数据库多少条数据受影响。
。
增删改不需要在View做操作。
修改:
Controller部分
testEFEntities db = new testEFEntities(); //实例化DbContext对象 EFtable e = db.EFtables.Find(1);//通过主键找到要修改的数据对象并将其实例化 e.goodsname = "修改后"; //给需要修改列的属性赋值 db.SaveChanges(); //保存操作到数据库
修改需要通过Find方法找到需要修改的数据对象,并实例化该对象。
删除:
Controller部分
testEFEntities db = new testEFEntities(); //实例化DbContext对象 EFtable e = db.EFtables.Find(1); //找到需要删除的数据列对象并实例化 db.EFtables.Remove(e); //将指定删除对象移除数据表对象集合 db.SaveChanges(); //操作保存到数据库
删除与修改类似,删除需要调用remove方法执行。