【发布时间】:2011-10-15 10:49:03
【问题描述】:
我想在 LINQ 查询中创建动态 where 子句。我有一个字符串生成器 sb 具有附加值 Country=null || City=null || State=null 和一个数据表,其中包含名为 Name、Lastname、Country、City、State 的列。我想将sb 值与数据表列进行比较并获取空/空行。
所以我想要一个这样的 LINQ 查询:
var query = from p in datatable.AsEnumerable()
where sb.tostring() // ------------error
select p
但它返回一个错误。我该如何解决这个问题?
【问题讨论】:
-
我认为你做不到。您要做的是“评估”字符串。你不能在 C# 中轻松地做到这一点(我会注意到你会在你的计算机上获取所有表,然后才过滤它,所以如果表很大,你会“杀死”sql server :-))
-
如果你真的想实现你的“eval”函数,这可能是一个好的开始:ckode.dk/programming/eval-in-c-yes-its-possible
标签: linq linq-to-sql linq-to-objects