Не удается создать метод расширения для ссылки LINQ to Entities DeleteAllOnSubmit () в LINQ to SQL - PullRequest
1 голос
/ 18 сентября 2010

Так как не существует DeleteAllOnSubmit() метода для LINQ to Entities. Поэтому я сам его создал и назвал для DeleteAllObjects следующим кодом.

public static void DeleleAllObjects<TEntity>(this ObjectSet<TEntity> objectSet, TEntity[] objects)
{
    foreach(var o in objects)
    {
        objectSet.DeleteObject(o);
    }
}

Однако код, который я пишу, не скомпилируется и выдает сообщение об ошибке:

Тип 'TEntity' должен быть ссылочным типом, чтобы использовать его как параметр 'TEntity' в универсальном типе или методе

Я думаю, что использовать foreach с DeleteObject все время не очень хорошая идея для удаления коллекции.

1 Ответ

3 голосов
/ 18 сентября 2010

Попробуй это.Метод должен быть универсальным, TEntity - просто заполнитель для типа.

public static void DeleteAllObjects<TEntity>( this ObjectSet<TEntity> objectSet,
                                              IEnumerable<TEntity> objects)
    where TEntity : class
{

   foreach(var o in objects)
   {
      objectSet.DeleteObject(o);
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...