MONGODB: Usando l'architettura di cipolle, il mio dominio / strato principale deve fare riferimento ai DLL mongodb?
-
13-12-2019 - |
Domanda
Mongodb ha il proprio tipo di obiettivi che utilizza come chiave primaria predefinita.Sto cercando di impostare un'applicazione progettata utilizzando l'architettura di cipolle con MongoDB come motore di persistenza nello strato dell'infrastruttura.Se le mie classi POCO sono definite nel mio livello di dominio, ma usa il tipo ObjectId del tipo di mongodb per le chiavi primarie, questo mi costringerà ad aggiungere mongodb come dipendenza dal mio livello di dominio?
Soluzione
Non è necessario un riferimento a mongodb ovunque tranne lo strato esterno.Nell'architettura di cipolle, la persistenza dei dati è considerata infrastruttura.Avrei ricevuto MongoDB parte di un'implementazione del repository che implementa le interfacce del repository definite nel modello di dominio.
I documenti mongodb hanno un campo _id
che lo identifica in modo univoco. Vedi qui :
.Il valore
_id
può essere di qualsiasi tipo, diverso dagli array, fino a quando è un unico.Se il tuo documento ha una chiave primaria naturale immutabile, ti consigliamo di utilizzarlo in_id
anziché gli ID generati automaticamente.
Non lasciare che il tuo meccanismo di persistenza ti spinge!