2

假设我有fooIds :: [Key Foo]. 我怎么得到foos :: [Foo]

我试过了

do
    foos <- map get fooIds

但它给了我

No instance for (MonadBaseControl IO m0)
  arising from a use of `get'

我假设是因为我需要使用runDB. 但我不太确定如何使用它。

4

2 回答 2

5

它看起来像这样:

foos <- runDB $ mapM get fooIds

但是,这会给你一个Maybe Foos 列表。Foo您可以通过替换getget404或使用将其转换为 s 列表catMaybes。请注意,这是两种不同的方法:第一种方法,如果任何 ID 不存在,用户将得到 404。第二种方法,该键将被忽略。

于 2013-02-10T04:56:01.083 回答
0

另一种有用的方法是

foos <- runDB $ mapM getJustEntity fooIds
于 2020-03-22T21:02:15.547 回答