自学EF一些小笔记

时间:2023-03-09 20:24:45
自学EF一些小笔记

一直在用DHhelper做MVC,感觉好山寨,也不怎么好用。决定开始学EF。

废话不多说开始记笔记。。。。。

EF就是把数据库表,存储过程,视图实例化,通过继承DbContext的一个类来操作数据实例。

创建EF:

自学EF一些小笔记

自学EF一些小笔记

自学EF一些小笔记

实体连接字符串一般选“是”。

自学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();//通过主键找到要修改的数据对象并将其实例化
e.goodsname = "修改后"; //给需要修改列的属性赋值
db.SaveChanges(); //保存操作到数据库

修改需要通过Find方法找到需要修改的数据对象,并实例化该对象。

删除:

Controller部分

testEFEntities db = new testEFEntities();   //实例化DbContext对象
EFtable e = db.EFtables.Find(); //找到需要删除的数据列对象并实例化
db.EFtables.Remove(e); //将指定删除对象移除数据表对象集合
db.SaveChanges(); //操作保存到数据库

删除与修改类似,删除需要调用remove方法执行。