使用LINQ to SQL删除数据库中的所有记录

时间:2010-03-25 12:14:21

标签: asp.net-mvc linq linq-to-sql

我正在使用MVC。如何使用LINQ to SQL从数据库中删除所有记录?我们非常感谢代码示例。

3 个答案:

答案 0 :(得分:7)

考虑到你指的是Linq to SQL,我认为只用一个命令行就不可能做你想要的事情(清除所有数据库实体)。

您可以使用SQL truncatedelete命令使用DataContext.ExecuteCommand删除每个实体,如下所示:

context.ExecuteCommand("DELETE FROM EntityName");

或者

context.ExecuteCommand("TRUNCATE TABLE EntityName");

尽管如此,您仍然需要为每个实体执行此操作,并注意实体之间的关系(外键)。

其他参考资料:

答案 1 :(得分:6)

如果要删除表中的所有记录,请执行以下操作:

context.Entities.DeleteAllOnSubmit(dc.Entities);

DeleteAllOnSubmit采用可枚举的集合,虽然我没有尝试过,但它应该支持这个(因为dc.Entities是一个表),它应该删除所有实体。

您必须为所有表格执行此操作;你不能只发出一个命令来做到这一点。或者,您可以创建一个包含所有删除的过程,并通过将proc添加到方法列表中来执行该过程。

另外,需要注意的是,如果在数据库中有相当大的结果集,则删除和重新创建数据库中的表比实际执行所有这些删除(FYI)更快。

答案 2 :(得分:0)

你不能使用linq,因为linq只是一种查询语言而不是数据操作语言。 改为使用dataadapter或createstatement或sql来完成此任务。