In meinem aktuellen Job habe ich die Repository/UoW-Muster auf EntityFramework und DbContext implementiert. Die einzigen gültigen Gründe, die ich dafür gefunden habe, wären, wenn Sie nicht auf eine bestimmte ORM-Lösung angewiesen wären. Ich wollte nur sehen, ob irgendjemand das jemals getan hat und auf halbem Weg durch das Projekt (sagen wir, ein Jahr später) entschied: "Meine Güte, ich bin froh, dass ich dieses Repository-Muster implementiert habe, weil ich von EntityFramework zu NHibernate wechseln muss. " Abgesehen von crud und einigen grundlegenden Abfragen mit Joins (mit LINQ) empfinde ich diese zusätzliche Ebene der Abstraktion als lästig, da Sie die Tabelle in der Datenbank erstellen, ein Repository schreiben, einen Service schreiben müssen (wenn Sie die typischen 3 Tiered Arch) und das notwendige Frontend wie ein Controller und Ansichten.Hat schon mal jemand während der Entwicklung zwischen ORM-Lösungen gewechselt?
Update:
Möchten wissen, ob jemand an einem Projekt wechseln ORM hat vor und warum?
Wenn das Entitätsmodell existiert, kann ich ein grundlegendes, in CRUD-Operationseinheiten getestetes Repository in 15-20 Minuten erstellen. Ich denke nicht, dass das eine Zeitverschwendung ist. Bitte sehen Sie meine Antwort, wenn Sie nicht zustimmen. – BentOnCoding
Gut für CUD-Operationen ein generisches Repository ist genug, warum mehr erstellen. Bei Lesevorgängen werden Sie "IQueryable" wahrscheinlich immer noch auf die eine oder andere Weise verwenden, da sonst Änderungen an den Anforderungen Änderungen auf allen Ebenen erfordern. –
Es hängt von der Komplexität Ihrer Repositories ab. Ich bin ein großer Fan von generischen Repositories. Meistens lasse ich den aufrufenden Code den Transaction-Bereich steuern und wann ich mich an die Datenbank binden soll, aber manchmal möchte ich etwas wie den Kontrolltransaktionsbereich machen und sagen, dass jede Methode SaveChanges() auf meinem DbContext impliziert. In diesem Fall würde ein generisches Repository meine Anforderungen nicht erfüllen. – BentOnCoding