none
Repository und DBContext RRS feed

  • Frage

  • Hallo, 

    beim bauen einer API wird in einigen Tutorials mit einem Repository gearbeitet, in anderen direkt mit dem DBContext. Warum wir ein Repository verwendet? Es erscheint mir alles andere als Sinnvoll, alles doppelt und dreifach definieren zu müssen, wenn man direkt mit dem DBContext arbeiten kann. 

    Kann mir jemand weiter helfen?

    Lg Uriel

    Donnerstag, 15. Dezember 2016 10:12

Alle Antworten

  • Eien pauschale Antwort ist hier schwierig; ein möglicher Grund ist es, daß man die API auch (automatisiert) testen möchte und in den Tests selbst nicht gegen die Datenbank arbeiten möchte, sondern mit einem TestRepository z.B. eine 'InMemoryDB' zur Verfügung stellt, gegen welche dann die Tests laufen können.
    Donnerstag, 15. Dezember 2016 11:03
  • Hallo Uriel,

    der Hauptgrund einer Extra-Schicht dürfte die Wartbarkeit sein. Irgendwann könnte es passieren, dass das EF nicht mehr weiter entwickelt wird und etwas neues her muss. In dem Fall musst du nur das Repository anpassen und nicht zig hundert Stellen irgendwo im Code.

    Wie Christoph schon schreibt geht damit auch eine bessere Testbarkeit einher. Denn der zusätzlichen Schicht ist es egal ob du eine oder beide Seiten davon gegen Test-Objekte austauschst.

    Außerdem ist es so relativ leicht möglich mehrere Datenbanken für das eigentliche Projekt wie eine einzige Datenquelle aussehen zu lassen. Für den Fall dass du mehrere Datenbanken bzw. Datenquellen allgemein brauchst, aber die Unterscheidung im Code keine Rolle spielt, kann das recht praktisch sein.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Donnerstag, 15. Dezember 2016 15:10