EF简单的增删查改

1.什么是EF框架?

全称EntityFramework 官方点的解释是Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。

2.EF框架的三种模式

DataBase First 数据库优先, 传统的表驱动方式创建EDM,然后通过EDM生成模型和数据层代码。除生成实体模型和自跟踪实现模型,还支持生成轻型DbContext。简历理解就是先设计数据库,创建好数据库映射成对象和上下文。

Model First 模型优先,先创建EDM模型,再生成DDL数据库脚本和模型和数据层代码。除生成实体模型和自跟踪实现模型,支持生成轻型DbContext。简单理解就是设计EDM模型然后生成到数据库和创建对象和上下文。

CodeFirst 代码优先,手动创建POCO模型,数据层DbContext及映射关系,通过Database.SetInitializer生成数据库,这种方式较灵活,但是需要手动定义实体模型和关系映射。简单理解就是自己写好实体对象和映射关系,最后通过命令生成到数据库中去。

3.代码实例

新增

 public class ClassInfoController : Controller
    {
        TestDB6Entities db = new TestDB6Entities();
        // GET: ClassInfo
        public ActionResult Index()
        {
           var classinfo = new ClassInfo()
           {
              Name = "2018173807",
              Remark = "七班",
               Term = 1,
               TeacherID = 2

           };
          方法1: db.ClassInfos.Add(classinfo);
         方法2:  db.Entry(classinfo).State = System.Data.Entity.EntityState.Added;
            db.SaveChanges();

           //批量新增
            List<ClassInfo> classInfos = new List<ClassInfo>() {
               new ClassInfo(){
                   Name = "2018173801",
               Remark = "一班",
               Term = 1,
              TeacherID = 2
               },
                new ClassInfo(){
                    Name = "2018173802",
               Remark = "二班",
                Term = 1,
                TeacherID = 2
                }
           };
           db.ClassInfos.AddRange(classInfos);
            db.SaveChanges();
            return View();
   }
   }

修改

 public class ClassInfoController : Controller
    {
      TestDB6Entities db = new TestDB6Entities();
        // GET: ClassInfo
        public ActionResult Index()
        {
             //修改1:先查询再修改,修改谋个熟悉,不会影响其他属性变化
            var set = db.ClassInfos.Find(7);
            set.Remark = "666";
            db.SaveChanges();
            //修改2:new对象,将对象的状态,改为修改状态,这样可能将其他属性设置为空
            var classinfoset = new ClassInfo()
            {
                ID = 1,
                Name = "2018173801",
                Remark = "一班",
                Term = 1,
               TeacherID = 2

            };
        db.Students.Add(student);
            db.Entry(classinfoset).State = System.Data.Entity.EntityState.Modified;
           db.SaveChanges();
            return View();
    }
    }

删除

 public class ClassInfoController : Controller
    {
      TestDB6Entities db = new TestDB6Entities();
        // GET: ClassInfo
        public ActionResult Index()
        {
        方法1.
        var a=db.ClassInfo.Find(ID);
        db.ClassInfo.Remove(a);
        db.savechanges();
        方法2.
        var b=new ClassInfo()
        {
        id=需要删除的ID
        }
        db.Entry(b).State = System.Data.Entity.EntityState.Deleted;
        db.savechanges();
        方法3.批量删除
         List<ClassInfo> classInfosd = db.ClassInfos.Where(p => p.Remark == "七班").ToList();
            db.ClassInfos.RemoveRange(classInfosd);
            db.SaveChanges();
             return View();
        }
    }

查询

 public class ClassInfoController : Controller
    {
      TestDB6Entities db = new TestDB6Entities();
        // GET: ClassInfo
        public ActionResult Index()
        {
               //精准查询。查询班级号为2018173806的
            var classinfos = db.ClassInfos.Where(p => p.Name == "2018173806");
            var classinfos1 = db.ClassInfos.Where(p => p.Name == "2018173806").ToList();
            //模糊查询 查询班级号含有2018的
            var classinfos2 = db.ClassInfos.Where(p => p.Name.Contains("2018")).ToList();
            //组合查询 查询学期是1同时教师也是1
            var classinfo3 = db.ClassInfos.Where(p => p.Term == 1 && p.TeacherID == 1).ToList();
            //组合查询 查询学期是1包含教师是1的
            var classinfo4 = db.ClassInfos.Where(p => p.Term == 1 || p.TeacherID == 1).ToList();
            db.SaveChanges();
             return View();
          }
    }

以上就是一些基本的增删查改需要用到的语句

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您讲解一下关于MVC架构和EF操作的增删查改。 MVC是一种软件架构模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型表示应用程序的数据和业务逻辑,视图展示数据给用户,控制器接收用户输入并调用模型和视图进行处理。 EF(Entity Framework)是一个基于.NET Framework的ORM(对象关系映射)框架,它可以使开发人员使用.NET语言编写与数据库交互的代码,而不需要直接与数据库打交道。 下面是关于如何使用MVC架构和EF进行增删查改的示例代码: 1. 增加操作: ```c# [HttpPost] public ActionResult Create(Student student) { using (SchoolContext db = new SchoolContext()) { db.Students.Add(student); db.SaveChanges(); } return RedirectToAction("Index"); } ``` 2. 删除操作: ```c# public ActionResult Delete(int id) { using (SchoolContext db = new SchoolContext()) { Student student = db.Students.Find(id); db.Students.Remove(student); db.SaveChanges(); } return RedirectToAction("Index"); } ``` 3. 修操作: ```c# [HttpPost] public ActionResult Edit(Student student) { using (SchoolContext db = new SchoolContext()) { db.Entry(student).State = EntityState.Modified; db.SaveChanges(); } return RedirectToAction("Index"); } ``` 4. 查询操作: ```c# public ActionResult Details(int id) { using (SchoolContext db = new SchoolContext()) { Student student = db.Students.Find(id); return View(student); } } ``` 以上是关于MVC架构和EF操作的增删查改的示例代码,希望能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值