【问题标题】:Linq to EF .Clear() does not clearLinq to EF .Clear() 不清除
【发布时间】:2012-05-02 05:42:51
【问题描述】:
EntityCollection.ToList().Clear()

不清除实体集合。知道为什么吗?

有什么办法吗?

我应该如何清除EntityCollection

【问题讨论】:

    标签: c# linq collections entity-framework-4 entitycollection


    【解决方案1】:

    因为ToList() 将EntityCollection 的副本创建为List<T>,然后您只需清除该列表而不是EntityCollection 本身。

    编辑 1: 使用 EntityCollection 中的 Clear() 方法: http://msdn.microsoft.com/de-de/library/bb302707.aspx

    编辑 2: 我懂了。所以是这个类:http://msdn.microsoft.com/de-de/library/ff422654(v=vs.91).aspx ? 看来您必须枚举所有项目并一一删除。

    foreach( var item in EntityCollection.ToList() )
        EntityCollection.Remove(item);
    

    这里你需要ToList() 来创建一个副本,因为大多数集合类不喜欢在枚举期间从它们中删除项目。

    【讨论】:

    • EntityCollection 没有 Clear()
    • 正如我所说的 EntityCollection 中的 Clear() 方法。只需发布 msdn 链接即可。
    • EntityCollection 是这个命名空间的一部分:System.ServiceModel.DomainServices.Client.Entity .. 没有 Clear()
    • 那么它不是 ADO.NET EF,尽管类具有相同的名称和相似的成员。考虑使用stackoverflow.com/questions/tagged/wcf-ria-services 重新标记您的问题
    【解决方案2】:

    ToList() 生成一个新列表(您正在清除它)。

    【讨论】:

      猜你喜欢
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多