• 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();
            }
  • 相关阅读:
    代理信息[Python] 实现网络爬虫
    线程希望IOS开发(67)之简单的线程方法
    生产环境紧急修改表存储引擎:MyISAM 为 InnoDB步骤
    Mysql优化SQL语句的一般步骤
    window 2003 实现多用户远程登录
    XSS的知识普及和预防办法
    免积分下载CSDN软件和新浪资料
    mysql开启慢查询方法
    在线JS/CSS/HTML压缩
    我们项目中需要准备的技术
  • 原文地址:https://www.cnblogs.com/notevar/p/5683527.html
Copyright © 2020-2023  润新知