Was ist der Unterschied zwischen "Model" und "Kontext" in Entity Framework-jargon?
Was ist der Unterschied zwischen "model" und "Kontext" in Entity Framework-jargon?
Ich bin mit dem Entity Framework database first Ansatz in einer Anwendung. Diese Begriffe kommen oft, wie ich gelesen habe in verschiedenen Foren und Artikel auf EF-Implementierung-Strategien. Ich kann nicht scheinen, um herauszufinden, wie diese beiden unterschiedlich sind (auch nicht mit entity framework, aber mit software-Entwicklung im Allgemeinen). Die Leute benutzen die Worte, als ob Sie anders sind, aber dann scheinen einige Leute benutzen die Worte Synonym.
- Die
DbContext
- Klasse ist die Basisklasse ermöglicht Datenbank-Abfrage verwendet in EF. Das Modell im MVC-Sinn können finden Sie in der Allgemeinen Domäne, beinhaltet Entitäten (auch mit Modellen) und Datenbank-verbindungen oder beziehen sich auf ein Modell, in dem Sie bedeuten im Grunde eine Klasse, die für die Darstellung Ihrer Daten (zum BeispielPerson
).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kontext
Ist dies ganz einfach. Der Zusammenhang ist entweder die
DbContext
oder die älterenObjectContext
Klasse, dass ist der Kern der entity framework-data access layer. Es versorgt transparenten Datenbankzugriff durch stark typisierte Gruppen von Entitäten, tracks und speichert die änderungen, verwaltet die Datenbank-Transaktionen und-verbindungen, und enthält eine Reihe von Methoden zu erleichtern alle Arten von Daten zugreifen, Aufgaben (insb.DbContext
).Modell
Dies können zwei (oder drei) Dinge.
So Kontext und Modell sind zwei ganz verschiedene Dinge. Man könnte sagen, dass der Kontext die Vermittlung zwischen zwei verschiedenen Arten von Modellen.
Grob gesagt einen Kontext bezieht sich auf eine Datenbank-Verbindung oder-Sitzung wherea das Modell ist die Zuordnung zwischen Tabellen, views, etc auf data access object-Klassen (d.h., Objekte, die die Daten enthält)
Modell ist eine Klasse, die in der Regel stellt eine Datenbank-Tabelle oder-Struktur für die Anzeige einer Datenbanktabelle. Zum Beispiel, wenn ich eine Datenbank für Autos, dann ein Modell für ein Auto sein könnte
Dieses Modell wird durch das entity framework und den sql-provider (für mysql-oder mssql-Regel), zum erstellen einer Abfrage für eine Datenbank. Die Abfrage erfordert, wie dies abgebildet werden, und das ist die Aufgabe des Kontext. Der Kontext in der Regel erstreckt sich
DbContext
ist und was ist für die Fassade verwendet, den Zugriff auf die Datenbank-Tabelle als eine in-memory-Objekt.