作者:吸烟有害但是健康1988 | 来源:互联网 | 2023-05-26 21:34
几天前我正在尝试从Devart开始使用名为EntityDAC的delphi的新ORM,我正在阅读特定于LINQ部分的文档,当我看到类似的内容时:
Linq.From(Emp).Where(Emp['Sal'] > 1000)
我得说,在我看到的第一刻唤醒我.表达"Emp ['Sal']> 1000"不是lambda表达式?!因为试用版本是这个组件没有来源我无法弄清楚如何声明函数/过程.
参考:http://www.devart.com/entitydac/docs/ - > Linq查询 - > Linq语法 - >向下滚动到Where会话
1> Mason Wheele..:
我几个月前在一篇博客文章中提到过这一点. 我没有资源来看,但几乎可以肯定这样做:
表达式Emp['Sal']
返回一个record
类型的值
此记录在其上声明了运算符重载
Delphi语言将操作符重载定义为函数,并且不要求它们返回任何指定或直观的类型.因此,>
这里的运算符不返回布尔值,而是返回另一个记录.
通过链接这些运算符,可以创建表达式树,可以通过LINQ求值程序对其进行求值.