我想用EF删除一个大列表的项目,所以我试着逐个删除,但这需要很长时间。
我尝试使用我的列表的.RemoveAll()
方法,但它不会更新数据库[仅从加载的实体中删除]。
所以我使用了一个SqlCommand
来将它们从数据库中删除,并使用.RemoveAll()
来防止EF的unexpected number of rows update (0)
异常。
代码:
dbContext.Database.ExecuteSqlCommand("DELETE FROM xxx WHERE xxx");
loadedEntity.subItems.ToList().RemoveAll(r => true);
dbContext.SaveChanges();
我的问题是:有没有更好的方法来做这件事?