我正在使用MVC。如何使用LINQ to SQL从数据库中删除所有记录?我们非常感谢代码示例。
答案 0 :(得分:7)
考虑到你指的是Linq to SQL,我认为只用一个命令行就不可能做你想要的事情(清除所有数据库实体)。
您可以使用SQL truncate
或delete
命令使用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来完成此任务。