【发布时间】:2012-05-02 05:42:51
【问题描述】:
EntityCollection.ToList().Clear()
不清除实体集合。知道为什么吗?
有什么办法吗?
我应该如何清除EntityCollection?
【问题讨论】:
标签: c# linq collections entity-framework-4 entitycollection
EntityCollection.ToList().Clear()
不清除实体集合。知道为什么吗?
有什么办法吗?
我应该如何清除EntityCollection?
【问题讨论】:
标签: c# linq collections entity-framework-4 entitycollection
因为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() 来创建一个副本,因为大多数集合类不喜欢在枚举期间从它们中删除项目。
【讨论】:
ToList() 生成一个新列表(您正在清除它)。
【讨论】: