几天前我正在尝试从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会话
解决方法
I mentioned this in a blog post a few months ago.我没有资源来看,但几乎可以肯定这样做:
>表达式Emp [‘Sal’]返回记录类型的值>此记录在其上声明了运算符重载> Delphi语言将操作符重载定义为函数,并不要求它们返回任何指定或直观的类型.因此,> operator here不返回布尔值,而是返回另一个记录.>通过链接这些运算符,可以创建表达式树,可以通过LINQ求值程序对其进行求值.