在ORM中覆盖==运算符有什么优势?

时间:2009-07-26 21:00:18

标签: orm operator-overloading

显然,很多ORM都是这样做的:

query.filter(username == "bob")

生成类似

的SQL
... WHERE username = 'bob'

为什么要覆盖 == 运算符而不是像:

query.filter(username.eq("bob"))

2 个答案:

答案 0 :(得分:4)

这是一个主观的问题,但总的来说我会说前者的语法更直观,而且由于许多(如果不是大多数)ORM都是这样做的,所以通常会预期(使其更直观)。

答案 1 :(得分:0)

orm的重点在于对象和关系世界之间的“阻抗不匹配”,所以理论上你可以在sql世界中幸福地不知道“=”并使用对象世界的“==”。