在 ORM 中重写 == 运算符有什么好处?
显然,很多 ORM 都会做这样的事情:
query.filter(username == "bob")
生成像
... WHERE username = 'bob'
Why override the == 运算符这样的 SQL,而不是像这样的东西:
query.filter(username.eq("bob"))
Apparently, a lot of ORMs do something like this:
query.filter(username == "bob")
to generate SQL like
... WHERE username = 'bob'
Why override the == operator instead of something like:
query.filter(username.eq("bob"))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一个主观问题,但总的来说,我会说前者的语法更直观,并且由于许多(如果不是大多数)ORM 都这样做,因此通常是预期的(使其更直观)。
This is a subjective question, but in general I would say that the syntax for the former is more intuitive, and since many (if not most) ORM's do this it's generally expected (making it more intuitive).
orm的全部意义在于弥补对象和关系世界之间的“阻抗不匹配”,因此理论上你可以幸福地不知道sql世界中的“=”并使用对象世界的“==”。
The whole point of orm is brideing the "impedance mismatch" between object and relational world , So in theory you can be blissfully unaware of "=" in sql world and work with "==" of the object world.