2013-03-19 155 views
0

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

说,像

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

其实,我的问题出在哪里Get_Property与反射来实现,这样Linq2Obj代替LINQ2SQL和所有的工作是由应用程序而不是SQL Server执行代码。

回答

0

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

0

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

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