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
и простой тип Хаскеля.