【发布时间】:2015-01-13 20:41:42
【问题描述】:
几天前,我正在尝试来自 Devart 的名为 EntityDAC 的用于 delphi 的新 ORM,当时我正在阅读特定于 LINQ 部分的文档,当我看到类似以下内容时:
Linq.From(Emp).Where(Emp['Sal'] > 1000)
不得不说,在我看到的第一刻就把我叫醒。表达式 "Emp['Sal'] > 1000" 不是 lambda 表达式?!因为试用版是这个组件没有提供源代码,所以我无法弄清楚函数/过程是如何声明的。
reference: http://www.devart.com/entitydac/docs/ -> Linq Queries -> Linq Syntax -> 向下滚动到 Where session
【问题讨论】:
-
我认为这不可能是 Pascal,因为
Emp['Sal'] > 1000表达式将在调用Where之前进行评估。你为什么不问问德瓦特? -
EntityDAC 可用于 .net 和 delphi 并且肯定特别是 linq 部分是不同的。但是还有一章Specifying LINQ Query Arguments as String,我猜你必须在delphi中使用它
-
@DavidHeffernan 那么运算符重载呢?难道你不能通过在运算符重载代码中建立一个值列表然后在 where 中使用该列表来完成一些事情吗?您实际上返回了一个未使用的结果。
-
@Graymatter 是的,我想是的。正如梅森所概述的那样。
-
@StefanGlienke: I suppose you would know... ;)