我正在尝试从表中删除多行。
在常规 SQL Server 中,这很简单:
DELETE FROM Table
WHERE
Table.Column = 'SomeRandomValue'
AND Table.Column2 = 'AnotherRandomValue'
在 Entity Framework 6 中,他们引入了 RemoveRange()方法。
但是,当我使用它时, Entity Framework 不是使用我提供的 where 子句删除行,而是查询数据库以获取与 where 子句匹配的所有行并使用它们的主键逐一删除它们。
这是 EntityFramework 目前的限制吗?
还是我使用的 RemoveRange()
有误?
以下是我如何使用 RemoveRange()
:
db.Tables.RemoveRange(
db.Tables
.Where(_ => _.Column == 'SomeRandomValue'
&& _.Column2 == 'AnotherRandomValue')
);
最佳答案
我认为我们在这里达到了 EF 的限制。 有时你只需要使用 ExecuteSqlCommand保持性能。
关于c# - 使用 RemoveRange() 批量删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22157005/