Delete all records from a database using LINQ to SQL

23,604

Solution 1

If you want to delete all records from a table, you do:

context.Entities.DeleteAllOnSubmit(dc.Entities);

DeleteAllOnSubmit takes an enumerable collection, and while I haven't tried it, it should support this (as dc.Entities is a Table), which should delete all the entities.

You have to do this for all the tables; you cannot just issue one command to do this. Alternatively, you could create a procedure with all of the deletes and just execute that, by adding the proc to the list of methods.

Also, to note, it's faster to drop and recreate the tables in the database than it is to actually perform all those deletes, FYI, if you have a rather large result set in the DB.

Solution 2

Considering you're referring to Linq to SQL, I think it is not possible to do what you want (clear all database entities) with just one command line.

You could use SQL truncate or delete command to delete each one of your entities, using DataContext.ExecuteCommand, as follows:

context.ExecuteCommand("DELETE FROM EntityName");

Or

context.ExecuteCommand("TRUNCATE TABLE EntityName");

Although, you still have to do this for each one of your entities and pay attention to relationships between entities (foreign keys).

Other references:

Share:
23,604
Samir
Author by

Samir

Updated on November 07, 2020

Comments

  • Samir
    Samir over 3 years

    I am using MVC. How do I delete all records from the database using LINQ to SQL? A code example would be greatly appreciated.

  • Stevan Trajkoski
    Stevan Trajkoski about 14 years
    technically ur correct but from teh context of the question, the OP means Linq2SQL