【发布时间】:2010-11-14 04:57:27
【问题描述】:
显然,很多 ORM 都在做这样的事情:
query.filter(username == "bob")
像生成SQL一样
... WHERE username = 'bob'
为什么要覆盖 == 运算符而不是类似的东西:
query.filter(username.eq("bob"))
【问题讨论】:
显然,很多 ORM 都在做这样的事情:
query.filter(username == "bob")
像生成SQL一样
... WHERE username = 'bob'
为什么要覆盖 == 运算符而不是类似的东西:
query.filter(username.eq("bob"))
【问题讨论】:
这是一个主观问题,但总的来说,我会说前者的语法更直观,而且由于许多(如果不是大多数)ORM 都这样做,因此通常是预期的(使其更直观)。
【讨论】:
orm 的全部意义在于弥补对象和关系世界之间的“阻抗不匹配”,因此理论上您可以幸福地不知道 sql 世界中的“=”并使用对象世界的“==”。
【讨论】: