【问题标题】:What advantage is there to overriding the == operator in an ORM?在 ORM 中覆盖 == 运算符有什么好处?
【发布时间】:2010-11-14 04:57:27
【问题描述】:

显然,很多 ORM 都在做这样的事情:

query.filter(username == "bob")

像生成SQL一样

... WHERE username = 'bob'

为什么要覆盖 == 运算符而不是类似的东西:

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

【问题讨论】:

    标签: orm operator-overloading


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      orm 的全部意义在于弥补对象和关系世界之间的“阻抗不匹配”,因此理论上您可以幸福地不知道 sql 世界中的“=”并使用对象世界的“==”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-09
        • 1970-01-01
        相关资源
        最近更新 更多