views:

406

answers:

1

I read that the new Entity Framework will include a method to delete multiple items (Linq to SQL has DeleteAllOnSubmit()) but I can't find the function/method to do that.

Is this in Beta 2 or do I have to make my own?

UPDATE:

This is what I'm using now:

    public void DeleteObjects(IEnumerable<object> objects)
    {
        foreach (object o in objects)
        {
            DeleteObject(o);
        }
        SaveChanges();
    }
+1  A: 

EF 4 allows you to execute TSQL statements against an object context:

   using (var context = new EntityFrameworkExampleEntities())
    {       
     var count = 
         context.ExecuteStoreCommand(@"DELETE FROM Companies WHERE [CompanyID]=4");            
    }

See the following blog for details.

http://blogs.microsoft.co.il/blogs/gilf/archive/2009/11/25/execute-t-sql-statements-in-entity-framework-4.aspx

Shiraz Bhaiji
Is there a drawback to my function?
Baddie
The drawback would be that all of your objects are held in memory during the removal. If you wanted to delete a large batch of objects that you haven't already loaded from the database, they would all be loaded into the application before they were deleted.
Anders Fjeldstad