您好我需要在查询中选择一个名称存储在字符串变量中的列,如:
string day = "Monday";
result = from w in DataContext.Table
where w.day == true
select w.SGL;
如果我这样做,我会收到一个语法错误,上面写着'没有定义日期或方法'
感谢您的帮助。
答案 0 :(得分:2)
您好我可以通过这样做解决它:
首先我安装了NuGet包System.Linq.Dynamic检查此链接
https://www.nuget.org/packages/System.Linq.Dynamic/
接下来添加命名空间:
using System.Linq.Dynamic;
然后查询:
string day = "Monday";
var resultado = DataContext.Table
.Where(day + " == true")
.Select("SGL");
感谢您的帮助
答案 1 :(得分:0)
不确定您要查找的内容,但如果您尝试选择列包含字符串的记录,则需要使用此字符:
string day = "Monday";
result = from w in DataContext.Table
where w.YourColumnName.Contains(day)
select w.SGL;
其中YourColumnName是您要过滤的列的名称
答案 2 :(得分:0)
抱歉,动态地址列名称是不可能的。您的最佳解决方案是使用
string day = "Monday";
result = from w in DataContext.Table
where w.YourColumnName.Contains(day)
select w.SGL;
switch (day){
case "Monday":
result = from w in DataContext.Table
where w.Monday == true
select w.SGL;
break;
//an so on
}
或使用策略模式来替换switch,但动态设置列名 - 不可能。您可以尝试使用Dynamic Linq库downloaded from here,然后您的查询将显示为
var query = DataContext.Table
.Where("Monday = 0")
但重演不会是最好的。