PersistValues ​​для ключей MongoDB в Yesod/Persistent 2

У меня есть код, который делал следующее в persistent < 2:

(either (\_ -> 0) id).fromPersistValue.unKey.entityKey $ myEntity

Как я могу достичь той же функциональности, используя persistent > 2 как keys теперь определяются отдельными Backends и как таковые нет unKey функционировать? Есть ли еще что-либо для достижения этих "представлений Int" для ключей MongoDB в более новых версиях Persistent?

1 ответ

Решение

Кажется, есть keyToOid функция, которая делает примерно то, что вы хотите в Database.Persist.MongoDB, Из постоянных документов я понял, что изменение было частью движения к абстрагированию ключей от бэкэндов:

class (PersistEntity record, PersistEntityBackend record ~ backend, PersistStore backend) => ToBackendKey backend record where

ToBackendKey преобразует PersistEntity Key в BackendKey Это может использоваться каждым бэкэндом для преобразования между Key и простой тип Хаскеля.

Другие вопросы по тегам