Yesod/Persistent 字段与 Eq

Posted

技术标签:

【中文标题】Yesod/Persistent 字段与 Eq【英文标题】:Yesod/Persistent field with Eq 【发布时间】:2012-12-31 04:44:37 【问题描述】:

在Persistent chapter of the Yesod book 中,某个字段被赋予了Eq 后缀,但从未解释过原因。在关系部分,我们看到以下模型:

Person
    name String
    deriving Show
Car
    ownerId PersonId Eq
    name String
    deriving Show

不久之后,我们就看到了:

Person
    name String
Store
    name String
PersonStore
    personId PersonId
    storeId StoreId
    UniquePersonStore personId storeId

除了后者是多对多之外,还有什么区别?我在 IRC 上收集到 Eq 后缀可以加入该字段。如果是这样,为什么一个人想要Eq 后缀?除了关系,还有其他情况需要使用Eq吗?

【问题讨论】:

【参考方案1】:

我以为我已经摆脱了所有这些...这只是 Persistent 旧时代的遗留物,需要 Eq。现在,它什么也没做,您可以比较 all 字段的相等性。

平等测试可用于很多情况,例如“查找作者的所有帖子”:

selectList [PostAuthor ==. userId] [Desc PostDate]

【讨论】:

感谢您回答我的问题,甚至修复文档!

以上是关于Yesod/Persistent 字段与 Eq的主要内容,如果未能解决你的问题,请参考以下文章

Yesod/Persistent 实体派生 Show

如何在 Yesod / Persistent 中正确使用 runDB

如何使用 Yesod/Persistent 创建外键约束?

Yesod / Persistent中的外键约束?

如何使用 Yesod/Persistent 访问两个不同的数据库服务器?

了解 Yesod Persistent TH 生成的代码