我正在尝试根据属性提取列表的子集。该属性本身就是一个集合,我只对这个集合不为空的值感兴趣
我的代码是:
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)
这里有什么问题,是否有明显的解决方案?
答案 0 :(得分:7)
该集合永远不会是EF中的null
。它可能是为空,但永远不会是null
。实际上,您甚至无法将整个集合与null
进行比较,这正是错误告诉您的内容。如果您想获取该集合中包含任何项目的项目,请使用Any
来确定该项目。