Ich glaube, wenn Sie Ihre Repositorys haben, verwenden Sie ein ORM, das bereits genug von der Datenbank abstrahiert ist.
Wo ich jetzt arbeite, glaubt jedoch jemand, dass wir eine Ebene haben sollten, die das ORM abstrahiert, falls wir das ORM später ändern möchten.
Ist es wirklich notwendig oder ist es einfach viel Aufwand, eine Ebene zu erstellen, die auf vielen ORM funktioniert?
Bearbeiten
Nur um mehr Details zu geben:
- Wir haben POCO-Klasse und Entity-Klasse, die mit AutoMapper zugeordnet sind. Entitätsklassen werden von der Repository-Schicht verwendet. Die Repository-Schicht verwendet dann die zusätzliche Abstraktionsebene, um mit Entity Framework zu kommunizieren.
- Die Geschäftsschicht hat in keiner Weise direkten Zugriff auf Entity Framework. Auch ohne die zusätzliche Abstraktionsebene über das ORM muss diese die Serviceschicht verwenden, die die Repository-Schicht verwendet. In beiden Fällen ist die Geschäftsschicht vollständig vom ORM getrennt.
- Das Hauptargument ist, ORM in Zukunft ändern zu können. Da es wirklich in der Repository-Schicht lokalisiert ist, ist es für mich bereits gut getrennt und ich verstehe nicht, warum eine zusätzliche Abstraktionsebene erforderlich ist, um einen "Qualitäts" -Code zu haben.