MongoDB:usando cebola arquitetura, que faz o meu domínio/camada de núcleo precisa referenciar o MongoDB dlls?
-
13-12-2019 - |
Pergunta
O MongoDB tem o seu próprio ObjectId tipo que utiliza como padrão de chave primária.Eu estou tentando configurar uma aplicação desenvolvida utilizando a Cebola Arquitetura com o MongoDB como o mecanismo de persistência a camada de infra-estrutura.Se o meu POCO classes são definidas em meu domínio camada, mas usar o MongoDB é ObjectID tipo de chaves primárias, será que me força para adicionar o MongoDB como uma dependência no meu domínio camada?
Solução
Você não deve precisar de uma referência para o MongoDB em qualquer lugar, exceto a mais externa da camada.A cebola arquitetura, a persistência de dados é considerado infra-estrutura.Eu teria MongoDB ser parte de um repositório de implementação que implementa repositório de interfaces definidas no modelo de domínio.
MongoDB documentos têm um _id
campo que identifica com exclusividade. Veja aqui:
O
_id
o valor pode ser de qualquer tipo, diferente matrizes, desde que seja de um único.Se o seu documento tiver naturais de chave primária que é imutável, nós recomendamos que você use-o na_id
em vez de a gerado automaticamente ids.
Não deixe que o seu mecanismo de persistência de empurrá-lo de volta!