0
我想创建一个linq语句来使用any子句过滤otu结果。我的问题是我没有单一的价值来比较。linq任何从多个值的子句
在下面的示例中,我有一个PropertyTaxBill实体,它是父级实体。每个人都有一系列TaxPropertyAssessmentDetails附加到它。
在这个查询中,人们可以指定他们只想处理与特定类层有关的账单,所以我检查是否有任何值存在于classStrata变量中。如果是这样,那么用户选择特定的。我试图在classStrata上做任何一个子句,但不是给它一个匹配的值,而是试图选择PropertyTaxBill附加的TaxPropertyAssessmentDetails集合中的所有值。这可能吗?
using (var dataContext = contextProvider.GetContext())
{
var query = dataContext.PropertyTaxBills.Where(x => x.Id > 1);
var classStrata = new int[0];
if (classStrata != null && classStrata.Any())
{
query = query.Where(x => classStrata.Any(y => y == x.TaxPropertyAssessmentDetails.SelectMany(z => z.PropertyTaxClassStrataId)));
}
}
我确实不能图片我会需要一个谓词来处理内部的任何这种情况。你可以发表一个例子吗? –
'classStrata.Any(y => x.TaxPropertyAssessmentDetails.Any(z => z.PropertyTaxClassStrataId == y))''。甚至更好'x => x.TaxPropertyAssessmentDetails.Any(z => classStracta.Contains(z.PropertyTaxClassStrataId))' –
这很好。谢谢 –