我有一个数据库不是我创建的,也无法修改。我需要运行一个 linq 查询,但我需要在 where
子句中传递一个变量。
表中的列:AdvMonAM
(所有位)、AdvMonAM
、AdvTueAM
、AdvTuePM
、 AdvWedAM
等
var column = "Adv" + dayOfWeek + time;
var employeesOnCall = from r in db.AdvOnCalls
where (variable column needed here) == true
select r.ChartEmployee;
如果我对 r.AdvTueAM
进行硬编码,它会完美地工作,但 r.column == true
或 column == true
则不会。我觉得这应该很容易,但我很难过。
我正在尝试查找在一天中的给定时间待命的员工。
最佳答案
糟糕的数据库设计导致糟糕的解决方案:
where ( (column == "AdvMonAM" && AdvMonAM == 1)
|| (column == "AdvMonPM" && AdvMonPM == 1)
)
依此类推,为每个字段添加一个条件。 (我不确定返回的数据类型。如果是 bool
,请删除 == 1
)
关于c# - LINQ where 子句中的可变条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25995335/