无法在LINQ to SQL中为LINQ to Entities linq DeleteAllOnSubmit()创建扩展方法

时间:2010-09-18 15:51:24

标签: linq entity-framework

由于LINQ to Entities没有DeleteAllOnSubmit()方法。所以我自己创建它并以DeleteAllObjects命名为以下代码。

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

但是我编写的代码在编译时失败并收到错误消息:

  

“TEntity”类型必须是引用类型才能将其用作   泛型类型或方法中的参数'TEntity'

我认为一直使用带有DeleteObject的foreach对于删除集合不是一个好主意。

1 个答案:

答案 0 :(得分:3)

试试这个。该方法必须是通用的,TEntity只是该类型的占位符。

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

   foreach(var o in objects)
   {
      objectSet.DeleteObject(o);
   }
}