我有'BayOption'子对象的'Property'对象。如果搜索条件与子级或父级匹配,我需要站点搜索来搜索子BayOptions以及属性并返回属性。属性可以有多个BayOptions(通常也有)。我不确定是否.Select或.SelectMany是我需要的技巧。到目前为止,我有以下内容:
var stringResults = db.Properties
.Where(x => x.Address.Contains(id)... (more conditions here...but then BayOptions)
|| x.BayOptions.Select(g => g.Description).Contains(id)
);
但是。选择这里只选择一个BayOption吗? (我不这么认为,但是.SelectMany让我想知道......) 无论如何,我没有得到这样的子对象的结果。
答案 0 :(得分:3)
一种选择是使用LINQ .Any()
:
var stringResults = db.Properties.Where(x =>
x.Address.Contains(id) ||
/* Other conditions || */
x.BayOptions.Any(g => g.Description.Contains(id)));
如果x.BayOptions.Any(g => g.Description.Contains(id))
值中的任何一个具有包含ID的说明,BayOptions
将返回true。