【发布时间】:2012-11-07 01:02:33
【问题描述】:
我正在使用 MVC。如何使用 LINQ to SQL 从数据库中删除所有记录?一个代码示例将不胜感激。
【问题讨论】:
-
你的意思是从一个表中删除所有行,还是从所有表中删除所有行?
标签: asp.net-mvc linq linq-to-sql
我正在使用 MVC。如何使用 LINQ to SQL 从数据库中删除所有记录?一个代码示例将不胜感激。
【问题讨论】:
标签: asp.net-mvc linq linq-to-sql
如果要删除表中的所有记录,请执行以下操作:
context.Entities.DeleteAllOnSubmit(dc.Entities);
DeleteAllOnSubmit 需要一个可枚举的集合,虽然我没有尝试过,但它应该支持这个(因为 dc.Entities 是一个表),它应该删除所有实体。
您必须对所有表格执行此操作;您不能只发出一个命令来执行此操作。或者,您可以通过将 proc 添加到方法列表中来创建一个包含所有删除操作的过程并执行该过程。
另外,需要注意的是,如果您在数据库中有相当大的结果集,那么删除和重新创建数据库中的表比实际执行所有这些删除要快,仅供参考。
【讨论】:
考虑到您指的是Linq to SQL,我认为仅使用一个命令行就无法完成您想要的操作(清除所有数据库实体)。
您可以使用 SQL truncate 或 delete 命令删除每个实体,使用 DataContext.ExecuteCommand,如下所示:
context.ExecuteCommand("DELETE FROM EntityName");
或者
context.ExecuteCommand("TRUNCATE TABLE EntityName");
尽管如此,您仍然必须为每个实体执行此操作,并注意实体之间的关系(外键)。
其他参考资料:
【讨论】:
您不能为此使用 linq,因为 linq 只是一种查询语言而不是数据操作语言。 请改用 dataadapter 或 createstatement 或 sql 来完成此任务。
【讨论】: