假设我有fooIds :: [Key Foo]
。我如何获得foos :: [Foo]
?
我试过
do
foos <- map get fooIds
但它给了我
No instance for (MonadBaseControl IO m0)
arising from a use of `get'
我假设因为我需要使用runDB
。但我不太确定如何使用它。
答案 0 :(得分:5)
它看起来像这样:
foos <- runDB $ mapM get fooIds
但是,这将为您提供Maybe Foo
的列表。您可以将Foo
替换为get
或使用get404
将其转换为catMaybes
列表。请注意,这是两种不同的方法:第一种方法,如果不存在任何ID,用户将获得404.使用第二种方法,该密钥将被忽略。
答案 1 :(得分:0)
另一种有用的方法是
foos <- runDB $ mapM getJustEntity fooIds