2017-05-08 142 views
0

我有一个从数据表中选择一些行的查询,但该条款where级联根据许多测试,波纹管我什么都试过,但他没有工作:动态where子句中的LINQ到数据表

Dim queryArchi = (From b In DataBien.AsEnumerable() 
    Group b By b!nom_ville, b!Designation_projet, b!code_ville, b!code_projet Into Group 
    Select nom_ville, Designation_projet,code_ville, code_projet, NBP = Group.Count()) 

     If vil <> "" Then queryArchi = queryArchi.Where(Function(d) d.code_ville = vil) 
     If p > 0 Then queryArchi.Where(Function(d) d.code_projet.Equals(p))      
      queryStructure = queryArchi.ToList 

只有第一个测试工作:

If vil <> "" Then queryArchi = queryArchi.Where(Function(d) d.code_ville = vil) 

我不知道是否有一个auther可能性来完成我寻找。 感谢我提前

回答

0

看看这两行:

If vil <> "" Then queryArchi = queryArchi.Where(Function(d) d.code_ville = vil) 
If p > 0 Then queryArchi.Where(

君不见有什么区别?存在丢失queryArchi =

所以

If p > 0 Then queryArchi = queryArchi.Where(

LINQ运营商不“修改”的原始查询,他们只需返回与LINQ运营商一个“新”查询“补充”。