您好我对实体框架相当新,并且想知道在尝试从上下文中删除时哪个更好。
最好使用.RemoveRange传递集合还是自己循环并调用.Remove方法?
他们最终可能会做同样的事情,但我有兴趣知道哪个更受欢迎?
答案 0 :(得分:3)
为方便起见,添加了RemoveRange,但使用它可以带来性能优势。这来自CodePlex上的源代码:
请注意,如果将DbContextConfiguration.AutoDetectChangesEnabled设置为true(默认值),则在删除任何实体之前将调用一次DetectChanges,并且不会再次调用。这意味着在某些情况下,RemoveRange可能会比多次调用Remove更好地执行。
如果您在上下文中跟踪了大量实体,则DetectChanges可能会遇到相当大的性能问题。在循环中多次执行此操作可能会对性能造成不利影响。