2016-10-28 3 views
-1

Welche Rolle spielt der Kontext in EF? Muss ich das Repository-Muster verwenden? Denn in meinem Verständnis des Kontexts ist es bereits Repository. Dies ist eine Abstraktion des Ladens oder liege ich falsch?Welche Rolle spielt der Kontext in EF?

Antwort

1

Dies wird stark diskutiert, so betrachten Sie die folgenden als "eine Antwort".

Der Kontext in EF ist eine Arbeitseinheit, in der die DbSets die Repositories sind. Zusammen bilden sie eine Abstraktion über eine Datenbank. Die SaveChanges-Methode schreibt alle an jedem Repository vorgenommenen Änderungen fest.

Es gibt viele Beispiele, in denen Personen das Repository-Muster verwenden, um ein IRepository zu erstellen, das intern einen Kontext/DbSet verwendet. Aber auf diese Weise sind Sie:

  • eine Abstraktion über eine Abstraktion zu schaffen
  • verlieren Funktionalität von EF, da Ihre Schnittstelle verbirgt die Implementierung

Der Grund, warum Sie diese zusätzliche Abstraktion schaffen würde, ist, dass Sie Austauschen von EF für etwas anderes, sagen Sie eine andere Datenbank/Speicher. Aber ich glaube, yagni ist hier vorhanden. Wenn Sie ein Projekt starten, das auf eine SQL-Datenbank abzielt, wie hoch ist die Wahrscheinlichkeit, dass Ihr Kunde zum Beispiel zu Oracle wechselt?

Hoffe, das hilft.

+0

Meine Meinung ist die gleiche wie Ihre. Und ich denke, dass das Repository Abstraktion über die EF selbst machen wird? –

Verwandte Themen