zoukankan      html  css  js  c++  java
  • Entity Framework入门教程(12)--- EF进行批量添加/删除

      EF6添加了批量添加/删除实体集合的方法,我们可以使用DbSet.AddRange()方法将实体集合添加到上下文,同时实体集合中的每一个实体的状态都标记为Added,在执行SaveChange()方法时为每个实体执行Insert操作;同样的我们使用DbSet.RemoveRange()方法将集合中的所有实体都标记为deleted状态,在执行SaveChange()方法时为每一条数据执行delete操作。

    通过AddRange()和RemoveRange()方法可以有效提升性能,所以建议在进行批量数据的添加/删除时采用这两种方法。

    一个批量添加的栗子:

    IList<Student> newStudents = new List<Student>() {
                                        new Student() { StudentName = "Steve" };
                                        new Student() { StudentName = "Bill" };
                                        new Student() { StudentName = "James" };
                                    };               
    
    using (var context = new SchoolDBEntities())
    {
        context.Students.AddRange(newStudents);
        context.SaveChanges();
    }

    一个批量删除的栗子:

    IList<Student> studentsToRemove = new List<Student>() {
                                        new Student() { StudentId = 1, StudentName = "Steve" };
                                        new Student() { StudentId = 2, StudentName = "Bill" };
                                        new Student() { StudentId = 3, StudentName = "James" };
                                    };
        
    using (var context = new SchoolDBEntities())
    {
        context.Students.RemoveRange(studentsToRemove);
        context.SaveChanges();
    }

    特别注意:EF Core的AddRange()和RemoveRange()只访问一次数据库,所以性能比EF6更高。

    EF系列目录链接:Entity Franmework系列教程汇总

  • 相关阅读:
    2011 ACM-ICPC 成都赛区解题报告(转)
    Subarray Sorting (线段树)
    sample
    gamma correction / /alpha blend
    mipmap
    antialiasing
    汇编指令
    zfighting 的问题
    勉励自己
    Ambient Occulution
  • 原文地址:https://www.cnblogs.com/wyy1234/p/9638522.html
Copyright © 2011-2022 走看看