LINQ:在子实体内搜索

时间:2015-06-18 14:49:06

标签: c# linq asp.net-mvc-5

我有'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让我想知道......) 无论如何,我没有得到这样的子对象的结果。

1 个答案:

答案 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。