我有一个父实体,它有一个子实体的ICollection
。
我想使用 OR
搜索父集合和子集合。
因此,如果 parentEntity.Name
或任何 childrentEntity.PropertyValue
包含 searchTerm
,则返回父实体。
我假设 SelectMany
会将子项展平并允许我轻松地搜索它们。
我还尝试“链接”我的查询,但这过滤了结果并且效果不佳 - 我需要 OR 表达式。
我的查询如下所示
var result = from v in parentEntity
where v.Name.Contains(searchTerm)
|| v.ChildCollection.SelectMany(x =>
x.PropertyValue.Contains(searchTerm))
select v;
最佳答案
我认为您正在寻找Any
扩展方法:
var result = from v in parentEntity
where v.Name.Contains(searchTerm)
|| v.ChildCollection.Any(x =>
x.PropertyValue.Contains(searchTerm))
select v;
关于c# - Linq 搜索原理和带有 OR 语句的子集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52895028/