c# - LINQ where 子句中的可变条件

标签 c# .net linq

我有一个数据库不是我创建的,也无法修改。我需要运行一个 linq 查询,但我需要在 where 子句中传递一个变量。

表中的列:AdvMonAM(所有位)、AdvMonAMAdvTueAMAdvTuePM 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 == truecolumn == true 则不会。我觉得这应该很容易,但我很难过。

我正在尝试查找在一天中的给定时间待命的员工。

最佳答案

糟糕的数据库设计导致糟糕的解决方案:

where ( (column == "AdvMonAM" && AdvMonAM == 1)
        || (column == "AdvMonPM" && AdvMonPM == 1)
      )

依此类推,为每个字段添加一个条件。 (我不确定返回的数据类型。如果是 bool,请删除 == 1)

关于c# - LINQ where 子句中的可变条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25995335/

相关文章:

c# - linq to sql 在最后进行简单的分组

c# - 如何通过自定义控件在母版页上设置属性?

c# - 在任何页面上显示消息的一般方法

c# - 未分配的局部变量是否保证 CS0165 C# 编译器错误?

c# - 在 .NET 中读取 Excel,如何获取特定行?

c# - 我应该如何比较两个列表中的值?

c# - 带有 CheckBox 单元格问题的 DataGridView

c# - 何时删除 C# 中的定时器事件处理程序?

c# - Linq GroupJoin 与 Linq All in Select 的效率对比

c# - 使用 Linq to SQL 删除表中的行