【发布时间】:2018-05-10 07:05:39
【问题描述】:
我正在尝试使用动态 where 条件编写 c# lambda 表达式,并尝试了解 where 条件中的内容类型。如何在 where 子句中动态调用该内容?
我这里以字符串为例
string query1 = "p=>p.id == 1 && p.name==\"abc\" ";
string query2 = "p=>p.id == 2 && p.name==\"def\" ";
//Normal Lambda Expression:
var details = _db.MyTable.Where(p=>p.id == 1 && p.name=="abc")
//Trying to check these if it works
var details1 = _db.MyTable.Where(query1)
var details2 = _db.MyTable.Where(query2)
【问题讨论】:
-
您是否尝试在查询中进行分配?我认为这行不通。
-
where 子句中的类型是什么?我们如何动态分配子句?
-
您也许可以使用动态 linq。
-
您是如何(以及为什么)构建该字符串的?解决这个问题并直接构建 Lambda 表达式可能会更好。
-
我正在尝试通过根据几个条件更改我的 where 条件来使用单个 lambda 表达式。