日期:2014-05-20  浏览次数:20875 次

需要动态Where的LINQ查询怎么写
现在的查询:

var temp=product in context.产品
          where product.型号== number &&
          product.出产时间 > beginTime &&
          product.出产时间 < endTime
          orderby product.出产时间


现在我有10个checkbox,每个checkbox代表一个产品的类型(总类型不止10种)。
如果10个都是false,就是所有类型(就像我现在的查询),如果有1个checkbox是true,就只返回那一种,多个true,就返回多个选定checkbox代表的类型。

可有这种带checkbox之类true、false的动态where查询例子?
------最佳解决方案--------------------
var query = Context.产品;
if (checkBox1.Checked)
    query = query.Where(x => x.型号== number);
if (checkBox2.Checked)
    query = query.Where(x => x.出产时间 > beginTime);
...
query = query.OrderBy(x => x.出产时间);
------其他解决方案--------------------
引用:
var query = Context.产品;
if (checkBox1.Checked)
    query = query.Where(x => x.型号== number);
if (checkBox2.Checked)
    query = query.Where(x => x.出产时间 > beginTime);
...
query = quer……


非常感谢!!!

感觉自己又把问题想复杂了,之前还查过什么Dynamic LINQ,结果看不懂。。。。
------其他解决方案--------------------
引用:
var query = Context.产品;
if (checkBox1.Checked)
    query = query.Where(x => x.型号== number);
if (checkBox2.Checked)
    query = query.Where(x => x.出产时间 > beginTime);
...
query = quer……


昨天看得太快,貌似有点问题。我10个checkbox都是代表类型,如果我需要获得多个型号的,照版主你的写法,我只能获得第一个是true的表示类型的产品。。。。