如何从DB中获得每个值,如果没有选择下拉框

本文关键字:如果 有选择 DB | 更新日期: 2023-09-27 18:09:47

我有一个新的问题,或者我只是有点卡在我的头。

我有几个下拉列表。在这里你可以选择一个值或者什么都不选择。这两点对于LINQ语句中的where子句在选择值之后都很重要。所以我需要的是,如果你选择了一个值,它应该显示(例如):
var result = from c in context.table
             where c.name == dropdown.selectedvalue
             select c.id;

这是比较容易的部分。所以我的问题是,如果你选择了下拉框中的空/空字段,它应该给我从DB的每一个结果。和上面的语句一样,但是没有where子句。

我最大的问题是,我有4个不同的下拉列表,每个列表都是where子句的元素。我的LINQ语句大约有30行长,我不想为每种情况复制语句5次。

var finishedReports = (from r in context.response
                       from c in context.maxCTs
                       from t in context.ticket
                       join tp in context.priorities
                           on t.ticket_priority_id equals tp.id
                       join ts in context.states
                           on t.ticket_state_id equals ts.id
                       from a in context.article
                       where (from ti in context.ticket
                              where ti.tn == r.tn
                              select new { ti.id }).Contains(new { id = a.ticket_id })
                       where r.change_time >= startdat &&
                           r.change_time <= enddat &&
                           r.tn == c.tn &&
                           t.tn == r.tn
                       //where t.queue_id == queueID &&
                       //    tp.id == priority &&
                       //    ts.name.Contains(status)
                       orderby r.tn
                       select new
                       {
                           r.tn,
                           r.title,
                           a.id,
                           a.a_subject,
                           a.article_type_id,
                           a.a_from,
                           tp.id,
                           ts.name,
                           r.change_time,
                           r.start_date,
                           r.create_date,
                           c.finish_date
                       }).Distinct();

我如何在语句中写,它应该采取每一个数据从DB时从下拉列表选择的值为空或空?(上面代码中的注释行是where子句,用于比较下拉列表中的值)

谢谢每一个帮助,如果我的问题是困惑我将改变它!

如何从DB中获得每个值,如果没有选择下拉框

有一个这样的lambda,只有当下拉列表有一个值

时才会生成SQL
where dropdown.value == "" || db.myfield == dropdown.value