I need to delete all data from my tables in database. So I use DataContext.ExecuteCommand
.
db.ExecuteCommand("DELETE From Products");
This method causes a new request to the database for each table. I want to clear data from my tables in one query. But all my attempts so far were unsuccessful.
Is it possible to use DataContext.ExecuteCommand
to delete data from multiple tables (multiple SQL queries)?
try
{
using (var context = new DataContext())
{
context.DeleteAll();
}
}
catch (Exception exception)
{
LogHelper.Log(exception);
}
private static void DeleteAll(this DataContext context)
{
var ctx = ((IObjectContextAdapter)context).ObjectContext;
ctx.ExecuteStoreCommand("DELETE FROM [RegionProducts]; DELETE FROM [ProductTypes]; DELETE FROM [Measurements]; DELETE FROM [Sizes]; " +
"DELETE FROM [Regions]; DELETE FROM [Types]; DELETE FROM [Categories]; DELETE FROM [Images] where Product_Id is not null; DELETE FROM [Products]; " +
"DELETE FROM [Brands]; DELETE FROM [Images];");
}