是否可以使用esqueleto创建返回常量值的查询?比如说SELECT 1
。
问问题
102 次
1 回答
1
试试这个:
import Database.Esqueleto
-- | We have to specialize `val` or else the type inferencer
-- will complain about the `Esqueleto` instance.
val_ :: Int -> SqlExpr (Value Int)
val_ = val
query :: SqlPersistT IO [Value Int]
query = select $ return (val_ 1)
@chi 的评论很接近,但1
需要将其提升为SqlExpr
. val
是通用编写的,取决于Esqueleto
类实例。通常,一旦您使用from
并拉入 SQL 表,类型推断器就会抓住它,但由于这里没有可用的,我们必须手动专门化。
总体而言,这是一个很好的例子,说明类型类如何混淆含义并迫使人们转向文档或论坛。
于 2016-07-19T18:26:47.590 回答