MongoDB:Muss meine Domäne/Kernschicht bei Verwendung der Onion-Architektur auf die MongoDB-DLLs verweisen?
-
13-12-2019 - |
Frage
MongoDB verfügt über einen eigenen ObjectId-Typ, den es als Standardprimärschlüssel verwendet.Ich versuche, eine Anwendung einzurichten, die mithilfe der Onion-Architektur mit MongoDB als Persistenz-Engine in der Infrastrukturschicht entwickelt wurde.Wenn meine POCO-Klassen in meiner Domänenschicht definiert sind, aber den ObjectID-Typ von MongoDB für Primärschlüssel verwenden, muss ich dann MongoDB als Abhängigkeit zu meiner Domänenschicht hinzufügen?
Lösung
Sie sollten nirgendwo einen Verweis auf MongoDB benötigen, außer auf der äußersten Ebene.In der Zwiebelarchitektur wird Datenpersistenz als Infrastruktur betrachtet.Ich möchte, dass MongoDB Teil einer Repository-Implementierung ist, die im Domänenmodell definierte Repository-Schnittstellen implementiert.
MongoDB-Dokumente haben eine _id
Feld, das es eindeutig identifiziert. Siehe hier:
Der
_id
Der Wert kann von einem beliebigen Typ sein, mit Ausnahme von Arrays, solange er eindeutig ist.Wenn Ihr Dokument über einen natürlichen Primärschlüssel verfügt, der unveränderlich ist, empfehlen wir Ihnen, diesen zu verwenden_id
anstelle der automatisch generierten IDs.
Lassen Sie sich nicht von Ihrem Beharrlichkeitsmechanismus herumtreiben!