RemoveRange 不显示在智能感知中

RemoveRange doesnot show in intellisense

我正在使用 EF 6 开发 ASP.NET 网络表单。

我已经用 Webforms 完成了其他项目,并且我有 RemoveRange 的 IntelliSense,但特别是在这个项目中,它没有出现!

当我输入

时它只显示Remove
someContext.someTable.

我什至尝试了 using System.Data.Entity; 因为这就是它应该来自的地方,但没有运气。

这是设计使然,请查看以下信息:Entity Framework Design Meeting Notes, on May 16, 2013 并且团队认识到了重大更改的可能性。

如果你还想用它,你可以看看this similar issue并用下面的扩展方法解决它:

public static class R2VDbContextExtensionMethods
{
    public static IEnumerable<TEntity> AddRange<TEntity>(this IDbSet<TEntity> dbset, IEnumerable<TEntity> entitiesToAdd) where TEntity : class
    {
        return ((DbSet<TEntity>)dbset).AddRange(entitiesToAdd);
    }

    public static IEnumerable<TEntity> RemoveRange<TEntity>(this IDbSet<TEntity> dbset, IEnumerable<TEntity> entitiesToDelete) where TEntity : class
    {
        return ((DbSet<TEntity>)dbset).RemoveRange(entitiesToDelete);
    }
}

我实际上解决了这个问题 获取所有索引..(主键) 并将它们放在一个列表中,然后 使用 for(或 foreach)调用 remove 到他们中的每一个 循环。

我不确定这是正确做事的好习惯, 但它确实很漂亮而且很简单, 就我个人而言,我看不出它是否会引起任何麻烦 (如果你没有像我第一次那样弄乱索引)