0

我可以在 Linq-to-Sql 的 lambda 表达式中以某种方式通过它的名称(由字符串表示)访问属性吗?

说,像

collection.Where(x => Get_Property(x, property_name)==property_value)

实际上,我的问题是Get_Property使用反射实现的代码,因此使用 Linq2Obj 而不是 Linq2Sql,并且所有工作都是由应用程序而不是 sql server 执行的。

4

2 回答 2

0

不,你不能这样做,因为只有一组方法可以转换成 SQL。您的自定义方法或反射 API 不属于该集合。

您可以使用Entity SQL将查询组合为字符串。

于 2013-03-19T12:34:03.590 回答
0

尝试DynamicLINQ。它从字符串创建 lambda 表达式,这些表达式由 ORM 使用。

于 2013-03-19T12:40:25.040 回答