给出表格如下:
表格1
表2
给定UI允许用户进行fency查询:
结果datagridview与everyfields.
我想建立条件查询,好像不是"任何"添加这个条件.
考虑到这一点,简单的LINQ查询不适用:
Table2
.Where(x => x.stringfield1 == dropdwonlist1.SelectedValue)
.Where(x => x.stringfield2 == dropdwonlist2.SelectedValue)
.Where(x => x.stringfield3 == dropdwonlist3.SelectedValue)
(...)
Run Code Online (Sandbox Code Playgroud)
文档中有表达式树,但看起来太多了.
有最简单的方法来构建我的动态查询吗?
表达树看起来比它们更可怕,但你是对的,在你的情况下它们是不必要的:你可以使用一个足够聪明的静态条件来忽略没有选择的下拉列表.你可以这样做:
Table2
.Where(x => dropdwonlist1.SelectedValue == null || x.stringfield1 == dropdwonlist1.SelectedValue)
.Where(x => dropdwonlist2.SelectedValue == null || x.stringfield2 == dropdwonlist2.SelectedValue)
.Where(x => dropdwonlist3.SelectedValue == null || x.stringfield3 == dropdwonlist3.SelectedValue)
Run Code Online (Sandbox Code Playgroud)