【发布时间】:2013-02-19 15:41:44
【问题描述】:
如何使用 Entity Framework 快速删除表中的所有行?
我目前正在使用:
var rows = from o in dataDb.Table
select o;
foreach (var row in rows)
{
dataDb.Table.Remove(row);
}
dataDb.SaveChanges();
但是,执行需要很长时间。
还有其他选择吗?
【问题讨论】:
-
阅读答案我想知道为什么这些
TRUNCATE专家都不担心外键约束。 -
我有点惊讶于这里的答案如何理所当然地认为每个人都在使用 Microsoft SQL Server,即使在 Entity Framework 中对其他数据库的支持可以追溯到我能找到的信息并且肯定比这个问题早了几年。提示:如果答案在 SQL 语句中用方括号引用表名(例如:
[TableName]),则它不可移植。 -
你有没有想过“不使用 ORM”是一个答案? ORM 有很多用途——批量操作不是其中之一。删除所有行不涉及业务逻辑,这就是 ORM 的亮点。
标签: c# sql linq entity-framework