使用LINQ筛选出null集合属性
本文关键字:集合 属性 null LINQ 筛选 使用 | 更新日期: 2023-09-27 18:29:01
我正在尝试基于属性提取列表的子集。这个属性本身就是一个集合,我只对这个集合不是空的值感兴趣
我的代码是:
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)
这里的问题是什么?有明显的解决方案吗?
集合在EF中永远不会是null
。它可能是空,但永远不会是null
。事实上,您甚至无法将整个集合与null
进行比较,这正是错误告诉您的。如果要获取集合中包含任何项目的项目,请使用Any
来确定。