Linq到EF .Clear()不清楚

时间:2012-05-02 05:42:52

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

EntityCollection.ToList().Clear()

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

任何解决方案?

我应该如何清除EntityCollection

2 个答案:

答案 0 :(得分:3)

因为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()来创建一个副本,因为当你在枚举期间从它们中删除项目时,大多数集合类都不喜欢它。

答案 1 :(得分:0)

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