Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何将字符串解析为linq表达式?_String_Linq_Parsing_Expression_Devforce - Fatal编程技术网

String 如何将字符串解析为linq表达式?

String 如何将字符串解析为linq表达式?,string,linq,parsing,expression,devforce,String,Linq,Parsing,Expression,Devforce,我有一个linq to devforce表达式: (从mgr.testTables中的r中选择r).OrderBy(r=>r.id) 我想将排序列名指定为字符串,我需要如下内容: 字符串orderBy=“r=>r.id” (从mgr.testTables中的r中选择r) 有没有办法将字符串解析为linq表达式?一个选项是使用project。我认为这与鲁本提到的DynamicQuery是一样的。无论如何,它允许您编写以下内容: var res = db.Table.Where("CategoryI

我有一个linq to devforce表达式:

(从mgr.testTables中的r中选择r).OrderBy(r=>r.id)

我想将排序列名指定为字符串,我需要如下内容:

字符串orderBy=“r=>r.id”
(从mgr.testTables中的r中选择r)

有没有办法将字符串解析为linq表达式?

一个选项是使用project。我认为这与鲁本提到的
DynamicQuery
是一样的。无论如何,它允许您编写以下内容:

var res = db.Table.Where("CategoryID == 2").Select("CategoryName");
动态LINQ添加了以字符串为参数的常用LINQ方法的重载。它们将字符串解析为表达式树,然后可以由LINQ或LINQtoSQL使用


另一种方法是从简单的代码片段组成表达式树(例如,访问各种属性的函数和可用于将它们与值进行比较的各种运算符)。我认为这更优雅,开销更少。我写过一篇文章,其中有一个类型名为,使它更简单。

有一个完全可操作的表达式解析器示例,它将基于MSDN代码库中的字符串,在DynamicQuery下为您实现这一点。(
LinqDataSource
控件在内部使用此示例的稍微修改版本。)

检查此问题是否确实需要对其进行分析?