1

我有数据查询,想创建linq/lambda可以运行的动态表达式entity collection。不确定如何使用表达式生成器执行此操作。如果可能,请提供一些例子。

例如,我有疑问

从 person.name= 'Joe' 的人中选择 person.name,person.surname

我有所有人的实体集合。但不想触发查询,而是想将此查询转换为 lambda 并在people collection上运行。这是为了避免服务器调用。

linq/lambda像这样的表达

从 person in person where person.id ='Joe' select person.name;

4

2 回答 2

0

例如,最好使用方法语法而不是查询语法,而不是 from person in people where person.Name == "Test" use People.Where(person => person.Name == "Test");

然后您可以添加对 Mono.CSharp.DLL 的引用,然后使用 Evaluator 类轻松地编译和运行 C# 代码,而不会损失太多性能。

然后通过 C# 字符串编译和运行您的 LINQ 查询,并使用 Evaluator 调用该字符串。

你也可以在 JavaScript 代码中看到这个方法,带有 eval 函数。

让我知道是否需要其他信息

祝你好运

于 2013-09-16T06:45:41.117 回答
0

LINQ

var xxx = from p in person 
          where p.Name equals "Joe"
          select p;

拉姆达

 var lambda = Person.Where(m=> m.Name == "Joe");

对于教程

MSDN 101 LINQ

MSDN

拉姆达

于 2013-09-16T06:48:36.347 回答