EF笔记——对数据库进行简单的增删查改

一,EF框架的三种模式

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

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

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

二,简单的使用EF框架进行操作

1,我们先创建数据库TestDB,并创建一张Roles表

在这里插入图片描述
在这里插入图片描述

2,我们在VS里面创建一个Web应用程序

(1)在Models文件夹下面添加ADO.NET 实体数据模型,并且在控制器上方引用

using Test.Models;
//using 解决方案名称+MOdels

(2)在控制器中实例化DbContext子类

TestDBEntities db = new TestDBEntities();

3,开始操作(控制器)

(1)查数据

//1,根据ID查询单条数据
var role= db.Roles.Find(1);
//2,查询全部数据
var role= db.Roles.ToList();
//3,根据条件查询数据
var role=db.Roles.Where(p=>p.Remark == "负责").ToList();
//最后将数据返回到视图
return View(role);

(2)新增数据

//新增一个角色,第一种方法
            Role role = new Role()
            {
                Name = "招生办",
                Remark = "招人"
            };
            db.Roles.Add(role);
            
//新增一个角色,第二种方法
            Role role1 = new Role()
            {
                Name = "招生办1",
                Remark = "招人1"
            };
            db.Entry(role1).State = System.Data.Entity.EntityState.Added;//修改数据的状态
            
//批量新增
            List<Role> roles = new List<Role>()
            {
                new Role(){ Name = "招生办2",Remark = "招人2" },
                new Role(){ Name = "招生办3",Remark = "招人3" }
            };
            db.Roles.AddRange(roles);

            db.SaveChanges();
            return View();

(3)修改数据

//第一种方法
            Role role = db.Roles.Find(3);
            role.Name = "李四";
            db.Entry(role).State = System.Data.Entity.EntityState.Modified;
            
 //第二种方法
            Role role = new Role()
            {
                ID=3,
                Name="招生处",
                Remark="招生"
            };
            db.Entry(role).State = System.Data.Entity.EntityState.Modified;
            
            db.SaveChanges();
            return Content("修改成功");

(4)删除数据

//删除第一种方法
            var role = db.Roles.Find(6);
            db.Roles.Remove(role);
            
//删除第二种方法
            Role role = new Role()
            {
                ID=6
            };
            db.Entry(role).State = System.Data.Entity.EntityState.Deleted;
            
//批量删除
            List<Role> roles = db.Roles.Where(p => p.Remark == "666").ToList();
            db.Roles.RemoveRange(roles);
            
            db.SaveChanges();
            return Content("删除成功");

看了之后,是不是也觉得很简单很有趣呢,一起来实践操作一下吧!

猜你喜欢

转载自blog.csdn.net/AKahong/article/details/106562756