2009-11-23 5 views
11

Я прочитал, что новая Entity Framework будет включать метод удаления нескольких элементов (Linq to SQL имеет DeleteAllOnSubmit()), но я не могу найти функцию/метод для этого.Entity Framework 4 Несколько Object Delete (RemoveAll)

Это бета-версия 2 или я должен сделать свой собственный?

UPDATE:

Это то, что я использую сейчас:

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

Возможный дубликат [Массовое удаление в LINQ to Entities] (http://stackoverflow.com/questions/869209/bulk-deleting-in-linq-to -entities) –

ответ

8

EF 4 позволяет выполнять операторы Tsql против контекста объекта:

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

Смотрите следующий блог для деталей.

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

+0

Есть ли недостаток в моей функции? – Omar

+2

Недостатком является то, что все ваши объекты хранятся в памяти во время удаления. Если вы хотите удалить большую часть объектов, которые вы еще не загрузили из базы данных, все они будут загружены в приложение до их удаления. –

+1

Ick. Чтобы процитировать статью, на которую вы ссылаетесь, «Эта способность должна использоваться только в тех случаях, когда Entity Framework не поддерживает то, что вам нужно». EF поддерживает удаление нескольких объектов, вызывает DeleteObject(), а затем SaveChanges() (или делает это http://stackoverflow.com/a/870081/24267). – mhenry1384

0

Я знаю, что это поздно, но я нашел этот пост и нашел простое решение, что не была опубликована. Вы можете установить OnDelete в Cascade в свойствах ассоциации. В VS2012 откройте файл edmx. Нажмите на ассоциацию, и вы найдете OnDelete на вкладке «Свойства». Затем вы можете использовать метод Remove() без триггеров или любой другой специальной обработки.

Смежные вопросы