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();
        }
posted @ 2016-07-19 09:30  notevar  阅读(7286)  评论(2编辑  收藏  举报