MVC 之 EF简单增删改查
一、上下文对象简介
在MVC项目中添加一个EDMX文件的时候会添加很多文件进来,其中包括.Context.tt,和.tt这两个T4模板,其中.Context.tt是用来生成上下文对象的T4模板,.tt生成实体类的T4模板。如图:

实体框架 会帮我们生成XML文件和实体类,这里它已经生成了我们要的XML和实体类,但是我们如果我们要操作实体对象保存到数据库中还是要通过EF上下文。
我们打开上下文对象.Context.tt文件,可以发现,上下文对象为我们的每一个表都生成了一个DbSet集合,如下图

这个继承DbContext的Nee32Entities对象就是EF提供给我们操作数据库的接口,通过Nee32Entities这个对象,就可以把内存中的数据添加到数据库中。
二、使用上下文对象增删改查
这里使用的是控制台应用程序来演示,先在数据库建表,然后再新建一个控制台应用程序,添加EDMX文件, 导入需要操作的数据库
2.1 新增
//通过EF 上下文对象新增到数据库
Nee32Entities db = new Nee32Entities();//创建一个上下文对象
// 添加文章品类
static void AddCategory()
{
//创建实体对象
B_Category category = new B_Category() { CateDescribe = "test",CateName = "aaaaaaa",CreateTime = DateTime.Now,MemberID = 1,Status = 1 };
db.B_Category.Add(category);//将对象添加到 上下文对象 的B_Category集合中
db.SaveChanges();//调用上下文对象的保存方法,将对象存入数据库
}
执行一下这个方法

数据中的内容

2.2 简单查询
// 查询
static List<B_Category> QueryCate(string cateName)
{
var category = db.B_Category.Where(c => c.CateName.Contains(cateName)).ToList();//使用Lambda表达式
//var category = (from c in db.B_Category where c.CateName.Contains(cateName) select c).ToList();//使用Linq
return category;
}
2.3 修改
//修改 先查询 再修改
static void EditCate()
{
B_Category category = db.B_Category.Where(c => c.ID == 1).FirstOrDefault();//先查找出要修改的对象
category.CateName = "bbbbbbbb";//修改数据
db.SaveChanges();
}
2.4 删除
//删除
static void DeleteCate()
{
//第一种 把要删除的对象先查出来
B_Category category = db.B_Category.Where(c => c.ID == 1).FirstOrDefault();
//第二种 直接使用主键删除
B_Category category = new B_Category() { ID = 1 };
db.B_Category.Attach(category);//将 通过主键 实例化的实体类附加到EF中
db.B_Category.Remove(category);//将 category从 上下文对象 的B_Category集合中移除
db.SaveChanges();
}

浙公网安备 33010602011771号