在上一篇文章中讲解了如何生成EF的DBFirst模式,接下来讲解如何使用DBFirst模式实现数据库数据的增删改查
新增一个Student,代码如下:
static void Add() { using (StudentSystemEntities dbContext = new StudentSystemEntities()) { // 定义Student对象 Student stu = new Student() { StudentName = "花千骨", Sex = "女", Age = 3422, Major = "舞蹈专业", Email = "2345678911@qq.com" }; // 将EF执行的SQL语句输出到控制台 dbContext.Database.Log += p => Console.WriteLine(p); // 只是内存上面的操作 dbContext.Students.Add(stu); // 保存的数据库 dbContext.SaveChanges(); Console.WriteLine("保存成功"); } }
在Main()方法里面调用Add()方法,结果:
查看数据库结果:
从上面的两个截图中可以看出数据新增成功。
查询StudentName是唐僧的学生信息并输出:
static void Query() { using (StudentSystemEntities dbContext = new StudentSystemEntities()) { List<Student> list = dbContext.Students.Where(p => p.StudentName == "唐僧").ToList<Student>(); list.ForEach(p => { Console.WriteLine("姓名:"+p.StudentName+",年龄:"+p.Age+",专业:"+p.Major+",邮箱:"+p.Email); }); } }
在Main()方法里面调用Query(),结果:
修改StudentName为花千骨的学生年龄:
static void Edit() { using (StudentSystemEntities dbContext = new StudentSystemEntities()) { // 将EF执行的SQL语句输出到控制台 dbContext.Database.Log += p => Console.WriteLine(p); // 查询要修改的数据,FirstOrDefault表示查询到的第一条数据 Student student = dbContext.Students.Where(p => p.StudentName == "花千骨").FirstOrDefault(); // 保存修改 student.Age = 234; dbContext.SaveChanges(); Console.WriteLine("修改成功"); } }
结果:
查看数据库数据:
删除新添加的数据:
static void Delete() { using (StudentSystemEntities dbContext = new StudentSystemEntities()) { // 将EF执行的SQL语句输出到控制台 dbContext.Database.Log += p => Console.WriteLine(p); // 先查询然后在删除 Student stu = new Student() { StudentID=18 }; // 附加到集合中 dbContext.Students.Attach(stu); // 删除的SQL语句是根据stu的StudentID生成的 dbContext.Students.Remove(stu); // 保存 dbContext.SaveChanges(); Console.WriteLine("删除成功"); } }
结果:
查看数据库:
数据删除成功。