2011-08-24 56 views
0

所以我慢慢地让我周围的LINQ语法头,但此查询的驾驶我坚果..LINQ其中count检查

我只想用一个以上的过滤器值返回过滤器..我已经试过把一组在fv上,但p超出了范围然后..

 var filters = (from p in _db.Products 
        join pf in _db.ProductFilterSets on p.ProductID equals pf.ProductID 
        join fv in _db.FilterValues on pf.FilterValueID equals fv.FilterValueID 
        join f in _db.Filters on fv.FilterID equals f.FilterID 
        where products.Contains(p) 
        select f).Distinct(); 

我做错了什么?

我非常需要:

 var filters = (from p in _db.Products 
        join pf in _db.ProductFilterSets on p.ProductID equals pf.ProductID 
        join fv in _db.FilterValues on pf.FilterValueID equals fv.FilterValueID 
        join f in _db.Filters on fv.FilterID equals f.FilterID 
        where products.Contains(p) && fv.Count() > 1 
        select f).Distinct(); 

谢谢

回答

1

你可以写这样的查询,通过使用into关键字

增加另一个加盟的_db.FilterValues但突出的结果,以一组
var filters = (from p in _db.Products 
       join pf in _db.ProductFilterSets on p.ProductID equals pf.ProductID 
       join fv in _db.FilterValues on pf.FilterValueID equals fv.FilterValueID into fvg 
       join fv in _db.FilterValues on pf.FilterValueID equals fv.FilterValueID 
       join f in _db.Filters on fv.FilterID equals f.FilterID 
       where products.Contains(p) && fvg.Count() > 1 
       select f).Distinct(); 
+0

干杯,这应该是一种魅力。编译就好,但我现在还没有收到任何数据,但是,需要检查其他地方的错误..将再次更新,谢谢我从来没有想过再次加入到组:) – Leigh