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系列教程匯總


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM