我正在对具有复杂对象的集合进行查询
Movies
.Where(qry => qry.Delivery.Any(b => (b.DeliveryType.Contains("Digital"))))
.Select(qry => new { Id = qry.Id,
Name = qry.Name,
Description = qry.Description,
Delivery = qry.Delivery.Where(qry2 => qry2.DeliveryType.Contains("Digital")).FirstOrDefault()
}).ToArray().Where(qry => qry.Delivery.Properties.Any(d => d.Value == "UHD" || d.Value == "FHD" || d.Value == "HD"))
电影目录有两种类型,物理和数字,因为我有兴趣获得所有具有数字版本的电影我正在运行上述查询,并且从结果集中,我想要排除数字的SD版本。
有没有办法可以执行此linq查询而不应用结果集中的过滤?
我的意思是我想将第二个where语句移动到我的第一个语句,因此查询/过滤可以再次运行oData Webservice。
答案 0 :(得分:0)
对我来说,看起来你正试图这样做:
Movies
.Where(movie => movie.Delivery.Any(d => d.DeliveryType.Contains("Digital")
&& d.Properties.Any(p => p.Value.EndsWith("HD"))))