LINQ to Enitities不能创建extesion方法在LINQ to SQL中链接DeleteAllOnSubmit() [英] Can 't create extesion method for LINQ to Enitities link DeleteAllOnSubmit() in LINQ to SQL

查看:155
本文介绍了LINQ to Enitities不能创建extesion方法在LINQ to SQL中链接DeleteAllOnSubmit()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  public static void DeleleAllObjects< TEntity>(此ObjectSet< TEntity> objectSet,TEntity []对象)
{
foreach(对象中的var o)
{
objectSet.DeleteObject );
}
}

然而,我编写的代码无法编译,错误消息:


类型TEntity必须是引用类型,以便将其用作
参数'TEntity'通用类型或方法


我认为使用foreach与DeleteObject一直是删除收集不是一个好主意。
请你给我建议。



谢谢

解决方案

p>尝试这个。该方法需要通用, TEntity 只是该类型的占位符。

  public static void DeleteAllObjects< TEntity>(此ObjectSet< TEntity> objectSet,
IEnumerable< TEntity>对象)
其中TEntity:class
{

foreach(对象中的var o)
{
objectSet.DeleteObject(o);
}
}


Since there is no DeleteAllOnSubmit() method for LINQ to Entities. So I myself create it and named for DeleteAllObjects as following code.

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

However the code I write fail on compile and get the error message:

The type 'TEntity' must be a reference type in order to use it as parameter 'TEntity' in the generic type or method

I think use foreach with DeleteObject all the time is not a good idea for delete collection. Please could you give me suggestion.

Thanks

解决方案

Try this. The method needs to be a generic, TEntity is simply the placeholder for the type.

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

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

这篇关于LINQ to Enitities不能创建extesion方法在LINQ to SQL中链接DeleteAllOnSubmit()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆