你的位置:首页 > ASP.net教程

[ASP.net教程]MVC 之 EF简单增删改查


一、上下文对象简介

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

实体框架 会帮我们生成

我们打开上下文对象.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();    }