相信用EF的時候,大家都會碰到批量操作的時候。用SQL語句一個Update或者Delete就OK了。
但是EF必要先要得到一個List然後再根據條件循環刪除,對應追求性能的同學,看到這種情況真是無法忍受。
舉例說明:
- 用EF批量刪除數據
IList<TaskfinishedTasks = tasks.Where(x =x.IsFinished == true).ToList();
if (finishedTasks != null && finishedTasks.Count 0)
{
foreach (Task item in finishedTasks)
{
taskService.DeleteTask(item);
}
}
- 用Sql刪除
string strSql = "DELETE FROM Tasks WHERE IsFinished=1";
_dbContext.ExecuteSqlCommand(strSql);