如何从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子句,用于比较下拉列表中的值)
谢谢每一个帮助,如果我的问题是困惑我将改变它!
有一个这样的lambda,只有当下拉列表有一个值
时才会生成SQLwhere dropdown.value == "" || db.myfield == dropdown.value