我想从表中删除多行。使用RemoveRange()批量删除行
在常规的SQL Server中,这将是简单的:
DELETE FROM Table
WHERE
Table.Column = 'SomeRandomValue'
AND Table.Column2 = 'AnotherRandomValue'
在实体框架6,他们已经推出了RemoveRange()方法。
但是,当我使用它时,Entity Framework不是使用我提供的where子句删除行,而是查询数据库以获取与where子句匹配的所有行,并使用它们的主键逐个删除它们。
这是EntityFramework的当前局限性吗? 还是我使用RemoveRange()
错?
以下是我如何使用RemoveRange()
:
db.Tables.RemoveRange(
db.Tables
.Where(_ => _.Column == 'SomeRandomValue'
&& _.Column2 == 'AnotherRandomValue')
);
表是您的存储库的名称? –
[EntityFramework.Extended](https://github.com/loresoft/EntityFramework.Extended)具有[批量删除](https://github.com/loresoft/EntityFramework.Extended/wiki/Batch-Update-and-删除) – paqogomez
看看这个:http://stackoverflow.com/questions/2519866/how-do-i-delete-multiple-rows-in-entity-framework-without-foreach –