I am using MVC. How do I delete all 开发者_如何学Gorecords from the database using LINQ to SQL? A code example would be greatly appreciated.
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.
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:
- Batch Updates and Deletes with LINQ to SQL
- LINQ to SQL Extension: Batch Deletion with Lambda Expression
you cannot use linq for that since linq is just a query language and not a data manipulation language. use a dataadapter or createstatement or sql for this task instead.
精彩评论