林克到EF .Clear() 不清除

本文关键字:清除 Clear EF 林克 | 更新日期: 2023-09-27 18:32:48

EntityCollection.ToList().Clear()

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

有什么解决办法吗?

我应该如何清除EntityCollection

林克到EF .Clear() 不清除

因为ToList()创建实体集合的副本作为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()生成一个新列表(您正在清除该列表)。