[Entity Framework].NET/C#应用程序编程开发中如何使用Entity Framework快速删除指定表的所有数据记录?

Entity Framework 作者: Rector 493 次阅读 · 读完约需 2 分钟 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

在.NET/C#的应用程序编程开发中,如何使用Entity Framework快速删除一个数据表中的所有数据呢?

最原始的做法是从数据库中取出所有的数据,然后使用foreach循环,调用Table.Remove()方法来处理,如下:

这样的方式理论上来说是没有任何问题的,但如果数据表的数据量比较大之后,这样的实现方式会花费很长时间,显然不是我们.NET/C#开发者所期望的。用户在使用中的体验也不好,那么,如何使用Entity Framework快速删除一个数据表中的所有数据呢?

方案一

使用Entity Framework(需要在Entity Framework 5或者以上的版本)中提供的Database.ExecuteSqlCommand()方法,直接执行TRUNCATE TABLE ...语句实现,执行效率非常快速,如下:

如果表中存在外键,不能使用TRUNCATE TABLE ...语句时,还可以使用如下语句:

方案二

使用Table.RemoveRange()方法,删除一个指定的集合,如下:

注:此方案在数据量大的时候效率也不是很好,推荐使用方案一。

方案三

或者不使用查询,如下:

方案四

一个仓储模式的实现参考方案,如下:

方案五

如果需要使用Entity Framework清理掉整个数据库所有表的数据时,我们可以使用如下的方法:

调用示例

阅读了该文章的人还浏览了...

本文永久链接码友网 » [Entity Framework].NET/C#应用程序编程开发中如何使用Entity Framework快速删除指定表的所有数据记录?

发布于: 2018-06-20 16:41:16
分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册