Entity Framework 4 Множественное удаление объекта (RemoveAll)
Я прочитал, что новая Entity Framework будет включать метод удаления нескольких элементов (Linq to SQL имеет DeleteAllOnSubmit()), но я не могу найти функцию/метод для этого.
Это в Beta 2 или мне нужно сделать свой собственный?
UPDATE:
Вот что я сейчас использую:
public void DeleteObjects(IEnumerable<object> objects)
{
foreach (object o in objects)
{
DeleteObject(o);
}
SaveChanges();
}
Ответы
Ответ 1
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
Ответ 2
Я знаю, что это поздно, но я нашел этот пост и нашел более простое решение, которое не было опубликовано.
Вы можете установить OnDelete в Cascade в свойствах ассоциации. В VS2012 откройте файл edmx. Нажмите на ассоциацию, и вы найдете OnDelete на вкладке "Свойства". Затем вы можете использовать метод Remove() без триггеров или любой другой специальной обработки.