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

Sam*_*ir 4 linq asp.net-mvc linq-to-sql

我正在使用MVC.如何使用LINQ to SQL从数据库中删除所有记录?一个代码示例将不胜感激.

Xpi*_*itO 7

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

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

context.ExecuteCommand("DELETE FROM EntityName");
Run Code Online (Sandbox Code Playgroud)

要么

context.ExecuteCommand("TRUNCATE TABLE EntityName");
Run Code Online (Sandbox Code Playgroud)

虽然,您仍然必须为每个实体执行此操作,并注意实体之间的关系(外键).

其他参考:


Bri*_*ins 6

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

context.Entities.DeleteAllOnSubmit(dc.Entities);
Run Code Online (Sandbox Code Playgroud)

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

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

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