使用LINQ过滤掉null集合属性

时间:2016-01-05 17:06:49

标签: c# linq

我正在尝试根据属性提取列表的子集。该属性本身就是一个集合,我只对这个集合不为空的值感兴趣

我的代码是:

var subGroupCollection = groupContext.SubGroups.Where(sg => sg.Holds != null).ToList();

我收到以下运行时错误:

无法比较'System.Collections.Generic.ICollection`1 [[WW2.Hold,WW2,Version = 6.0.5848.30559,Culture = neutral,PublicKeyToken = null]]'类型的元素。仅支持基本类型,枚举类型和实体类型。

“Holds”是集合属性的名称(这是Hold对象的HashSet)

这里有什么问题,是否有明显的解决方案?

1 个答案:

答案 0 :(得分:7)

该集合永远不会是EF中的null。它可能是为空,但永远不会是null。实际上,您甚至无法将整个集合与null进行比较,这正是错误告诉您的内容。如果您想获取该集合中包含任何项目的项目,请使用Any来确定该项目。