zoukankan      html  css  js  c++  java
  • Entity Framework应用:使用EF的DataBase First模式实现数据库的增删改查

    在上一篇文章中讲解了如何生成EF的DBFirst模式,接下来讲解如何使用DBFirst模式实现数据库数据的增删改查

    一、新增数据

    新增一个Student,代码如下:

     1 static void Add()
     2 {
     3      using (StudentSystemEntities dbContext = new StudentSystemEntities())
     4       {
     5           // 定义Student对象
     6           Student stu = new Student()
     7           {
     8                StudentName = "花千骨",
     9                Sex = "",
    10                Age = 3422,
    11                Major = "舞蹈专业",
    12                Email = "2345678911@qq.com"
    13            };
    14            // 将EF执行的SQL语句输出到控制台
    15            dbContext.Database.Log += p => Console.WriteLine(p);
    16            // 只是内存上面的操作
    17            dbContext.Students.Add(stu);
    18            // 保存的数据库
    19            dbContext.SaveChanges();
    20            Console.WriteLine("保存成功");
    21       }                       
    22 }

    在Main()方法里面调用Add()方法,结果:

    查看数据库结果:

    从上面的两个截图中可以看出数据新增成功。

    二、查询数据

    查询StudentName是唐僧的学生信息并输出:

     1 static void Query()
     2 {
     3        using (StudentSystemEntities dbContext = new StudentSystemEntities())
     4        {
     5             List<Student> list = dbContext.Students.Where(p => p.StudentName == "唐僧").ToList<Student>();
     6             list.ForEach(p => 
     7             {
     8                     Console.WriteLine("姓名:"+p.StudentName+",年龄:"+p.Age+",专业:"+p.Major+",邮箱:"+p.Email);
     9              });               
    10         }
    11 }

     在Main()方法里面调用Query(),结果:

    三、修改数据

    修改StudentName为花千骨的学生年龄:

     1 static void Edit()
     2 {
     3      using (StudentSystemEntities dbContext = new StudentSystemEntities())
     4      {
     5           // 将EF执行的SQL语句输出到控制台
     6           dbContext.Database.Log += p => Console.WriteLine(p);
     7           // 查询要修改的数据,FirstOrDefault表示查询到的第一条数据
     8           Student student = dbContext.Students.Where(p => p.StudentName == "花千骨").FirstOrDefault();
     9           // 保存修改
    10           student.Age = 234;
    11           dbContext.SaveChanges();
    12           Console.WriteLine("修改成功");
    13       }
    14 }

    结果:

    查看数据库数据:

    四、删除数据

    删除新添加的数据:

     1 static void Delete()
     2 {
     3       using (StudentSystemEntities dbContext = new StudentSystemEntities())
     4       {
     5            // 将EF执行的SQL语句输出到控制台
     6            dbContext.Database.Log += p => Console.WriteLine(p);
     7            // 先查询然后在删除
     8            Student stu = new Student()
     9            {
    10                  StudentID=18
    11            };
    12             // 附加到集合中
    13             dbContext.Students.Attach(stu);
    14             // 删除的SQL语句是根据stu的StudentID生成的
    15             dbContext.Students.Remove(stu);
    16             // 保存
    17             dbContext.SaveChanges();
    18             Console.WriteLine("删除成功");
    19        }
    20 }

    结果:

    查看数据库:

    数据删除成功。 

  • 相关阅读:
    SpringMVC中@Controller和@RequestMapping用法和其他常用注解
    eclipse maven install 时控制台乱码问题解决
    使用模板实现编译期间多态(类名当参数)
    QT中Dialog的使用(使用QStackedWidget维护页面切换)
    QT中的各种对话框
    Qt 5 最小构建笔记(只编译QtBase)
    忽然懂了:“视图”的用途不仅仅是临时表,更适用于变化比较大的情况,而且不用改客户端一行代码
    React-Native
    一位OWin服务器新成员TinyFox
    Access Toke调用受保护的API
  • 原文地址:https://www.cnblogs.com/dotnet261010/p/9080637.html
Copyright © 2011-2022 走看看