给定以下持久类型:
share
[mkPersist sqlSettings, mkMigrate "migrateAll"]
[persistLowerCase|
Account
email Text
passphrase Text
firstName Text
lastName Text
deriving Eq Show Generic
|]
我认为生成的是一种镜头,即AccountEmail
等AccountPassphrase
。是否可以以这种方式组合这些,不一定是组合,而是说字符串连接,我经常发现自己在编写这些函数:
accountFullName :: SqlExpr (Entity Account) -> SqlExpr Text
accountFullName acc = acc ^. AccountFirstName ++. val " " ++. acc ^. AccountLastName
如果我能以类似的方式定义它会很好,Account*
这样我就可以使用而不是使用原始函数来调用它们^.
,即acc ^. AccountFullName
. 这可能不是使用这些访问器的适当方式,但如果不是,我会很想知道为什么,因为我觉得这可能有助于我进一步理解 Persistent 库的这一部分,因为当我看的时候我感到相当迷茫在周围的代码EntityField
...