0

我想允许用户通过在列表中选择它们并按下删除/确认按钮来删除确认多条记录。

我已经搜索过,似乎EF不支持批量更新/删除,那么以下方法之间有什么区别 - 直接操作数据库是否有任何负面影响。

1-使用ExecuteSqlCommand方法直接运行查询database

2-或entities使用选定的 ID 创建,将其设置state已修改/删除,然后调用context.SaveChanges().

4

2 回答 2

2

我会选择第二种选择——你有一个涵盖所有更新的事务,这可能是一件好事。(在某些情况下不是)

这也是执行此操作的最简单/最快的方法。

如果您将遇到性能问题,请继续优化它 - 更改为 SQL 或将 ORM 更改为 NHibernate 或做任何您想做的事情。

此外 - 有一条规则说先写,然后优化。不是反过来。

于 2012-11-12T21:05:15.873 回答
0

关于选项1的想法:

  1. 您打算如何识别应该删除的记录?
  2. 如果您有一个 id 数组,您是否打算迭代 sql 命令 n 次?

关于选项2的想法:

  1. 如果您选择实体并需要修改它们,您最终将加载内存中的所有实体。
  2. 由于上下文知道实体类型并提供删除方法,因此您可以在延迟执行时调用删除方法。
于 2012-11-12T21:10:34.283 回答