DbContext Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wystąpienie DbContext reprezentuje kombinację wzorców Unit Of Work i Repository, dzięki czemu może służyć do wykonywania zapytań z bazy danych i grupowania zmian, które następnie zostaną zapisane z powrotem do magazynu jako jednostka. Obiekt DbContext jest koncepcyjnie podobny do ObjectContext.
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Justification="Casing is intentional")]
public class DbContext : IDisposable, System.Data.Entity.Infrastructure.IObjectContextAdapter
public class DbContext : IDisposable, System.Data.Entity.Infrastructure.IObjectContextAdapter
type DbContext = class
interface IDisposable
interface IObjectContextAdapter
Public Class DbContext
Implements IDisposable, IObjectContextAdapter
- Dziedziczenie
-
DbContext
- Pochodne
- Atrybuty
- Implementuje
Uwagi
DbContext jest zwykle używany z typem pochodnym, który zawiera DbSet<TEntity> właściwości dla głównych jednostek modelu. Te zestawy są automatycznie inicjowane po utworzeniu wystąpienia klasy pochodnej. To zachowanie można zmodyfikować, stosując SuppressDbSetInitializationAttribute atrybut do całej klasy kontekstu pochodnego lub do poszczególnych właściwości klasy. Model danych jednostki oparty na kontekście można określić na kilka sposobów. W przypadku korzystania z podejścia DbSet<TEntity> Code First właściwości kontekstu pochodnego są używane do tworzenia modelu według konwencji. Chroniona metoda OnModelCreating może zostać zastąpiona w celu dostosowania tego modelu. Większa kontrola nad modelem używanym do podejścia Model First można uzyskać, tworząc DbCompiledModel jawnie z elementu DbModelBuilder i przekazując ten model do jednego z konstruktorów DbContext. W przypadku korzystania z metody Database First lub Model First model można utworzyć przy użyciu Projektant jednostki (lub ręcznie przez utworzenie pliku EDMX), a następnie można określić ten model przy użyciu parametrów połączenia jednostki lub EntityConnection obiektu. Połączenie z bazą danych (w tym nazwę bazy danych) można określić na kilka sposobów. Jeśli konstruktor DbContext bez parametrów jest wywoływany z kontekstu pochodnego, nazwa kontekstu pochodnego jest używana do znajdowania parametrów połączenia w pliku app.config lub web.config. Jeśli nie znaleziono parametrów połączenia, nazwa zostanie przekazana do klasy DefaultConnectionFactory zarejestrowanej w Database klasie. Następnie fabryka połączeń używa nazwy kontekstu jako nazwy bazy danych w domyślnych parametrach połączenia. (Te domyślne parametry połączenia wskazuje wartość .\SQLEXPRESS na komputerze lokalnym, chyba że zostanie zarejestrowana inna wartość DefaultConnectionFactory). Zamiast używać nazwy kontekstu pochodnego, można również jawnie określić nazwę połączenia/bazy danych, przekazując nazwę do jednego z konstruktorów DbContext, które pobierają parametry. Nazwę można również przekazać w formularzu "name=myname", w którym przypadku należy znaleźć nazwę w pliku konfiguracji lub zostanie zgłoszony wyjątek. Należy pamiętać, że połączenie znalezione w pliku app.config lub web.config może być normalnymi parametrami połączenia bazy danych (a nie specjalnymi parametrami połączenia platformy Entity Framework) w takim przypadku dbContext będzie używać funkcji Code First. Jeśli jednak połączenie znalezione w pliku konfiguracji jest specjalnymi parametrami połączenia programu Entity Framework, wówczas element DbContext użyje najpierw bazy danych/modelu, a model określony w parametrach połączenia zostanie użyty. Istniejące lub jawnie utworzone połączenie DbConnection można również użyć zamiast nazwy bazy danych/połączenia. Element DbModelBuilderVersionAttribute można zastosować do klasy pochodnej z bazy danych DbContext, aby ustawić wersję konwencji używanych przez kontekst podczas tworzenia modelu. Jeśli atrybut nie zostanie zastosowany, zostanie użyta najnowsza wersja konwencji.
Konstruktory
DbContext() |
Tworzy nowe wystąpienie kontekstu przy użyciu konwencji w celu utworzenia nazwy bazy danych, do której zostanie nawiązane połączenie. Nazwa by-convention jest pełną nazwą (przestrzeń nazw i nazwa klasy) klasy pochodnego kontekstu. Zobacz uwagi dotyczące klasy, aby dowiedzieć się, jak jest to używane do tworzenia połączenia. |
DbContext(DbCompiledModel) |
Tworzy nowe wystąpienie kontekstu przy użyciu konwencji w celu utworzenia nazwy bazy danych, do której zostanie nawiązane połączenie, i inicjuje je z danego modelu. Nazwa by-convention jest pełną nazwą (przestrzeń nazw i nazwa klasy) klasy pochodnego kontekstu. Zobacz uwagi dotyczące klasy, aby dowiedzieć się, jak jest to używane do tworzenia połączenia. |
DbContext(DbConnection, Boolean) |
Tworzy nowe wystąpienie kontekstu przy użyciu istniejącego połączenia w celu nawiązania połączenia z bazą danych.
Połączenie nie zostanie usunięte, gdy kontekst zostanie usunięty, jeśli |
DbContext(DbConnection, DbCompiledModel, Boolean) |
Tworzy nowe wystąpienie kontekstu przy użyciu istniejącego połączenia w celu nawiązania połączenia z bazą danych i inicjuje je z danego modelu.
Połączenie nie zostanie usunięte, gdy kontekst zostanie usunięty, jeśli |
DbContext(ObjectContext, Boolean) |
Tworzy nowe wystąpienie kontekstu wokół istniejącego obiektuContext. |
DbContext(ObjectContext, Boolean) |
Tworzy nowe wystąpienie kontekstu wokół istniejącego obiektuContext. |
DbContext(String) |
Tworzy nowe wystąpienie kontekstu przy użyciu podanych parametrów jako nazwy lub parametrów połączenia dla bazy danych, z którą zostanie nawiązane połączenie. Zobacz uwagi dotyczące klasy, aby dowiedzieć się, jak jest to używane do tworzenia połączenia. |
DbContext(String, DbCompiledModel) |
Tworzy nowe wystąpienie kontekstu przy użyciu podanych parametrów jako nazwy lub parametrów połączenia dla bazy danych, z którą zostanie nawiązane połączenie, i inicjuje je z danego modelu. Zobacz uwagi dotyczące klasy, aby dowiedzieć się, jak jest to używane do tworzenia połączenia. |
Właściwości
ChangeTracker |
Zapewnia dostęp do funkcji kontekstu, które zajmują się śledzeniem zmian jednostek. |
Configuration |
Zapewnia dostęp do opcji konfiguracji dla kontekstu. |
Database |
Tworzy wystąpienie bazy danych dla tego kontekstu, które umożliwia tworzenie/usuwanie/sprawdzanie istnienia bazowej bazy danych. |
Metody
Dispose() |
Wywołuje chronioną metodę Dispose. |
Dispose(Boolean) |
Usuwa kontekst. Element bazowy ObjectContext jest również usuwany, jeśli został utworzony przez ten kontekst lub własność została przekazana do tego kontekstu podczas tworzenia tego kontekstu. Połączenie z bazą danych (DbConnection obiekt) jest również usuwane, jeśli został utworzony przez ten kontekst lub własność została przekazana do tego kontekstu podczas tworzenia tego kontekstu. |
Entry(Object) |
DbEntityEntry Pobiera obiekt dla danej jednostki, zapewniając dostęp do informacji o jednostce i możliwość wykonywania akcji w jednostce. |
Entry<TEntity>(TEntity) |
DbEntityEntry<TEntity> Pobiera obiekt dla danej jednostki, zapewniając dostęp do informacji o jednostce i możliwość wykonywania akcji w jednostce. |
Equals(Object) |
Wystąpienie DbContext reprezentuje kombinację wzorców Unit Of Work i Repository, dzięki czemu może służyć do wykonywania zapytań z bazy danych i grupowania zmian, które następnie zostaną zapisane z powrotem do magazynu jako jednostka. Obiekt DbContext jest koncepcyjnie podobny do ObjectContext. |
GetHashCode() |
Wystąpienie DbContext reprezentuje kombinację wzorców Unit Of Work i Repository, dzięki czemu może służyć do wykonywania zapytań z bazy danych i grupowania zmian, które następnie zostaną zapisane z powrotem do magazynu jako jednostka. Obiekt DbContext jest koncepcyjnie podobny do ObjectContext. |
GetType() |
Wystąpienie DbContext reprezentuje kombinację wzorców Unit Of Work i Repository, dzięki czemu może służyć do wykonywania zapytań z bazy danych i grupowania zmian, które następnie zostaną zapisane z powrotem do magazynu jako jednostka. Obiekt DbContext jest koncepcyjnie podobny do ObjectContext. |
GetValidationErrors() |
Weryfikuje śledzone jednostki i zwraca kolekcję DbEntityValidationResult zawierającą wyniki walidacji. |
OnModelCreating(DbModelBuilder) |
Ta metoda jest wywoływana, gdy model dla kontekstu pochodnego został zainicjowany, ale przed zablokowaniem modelu i użytym do zainicjowania kontekstu. Domyślna implementacja tej metody nic nie robi, ale można ją zastąpić w klasie pochodnej, tak aby można było jeszcze bardziej skonfigurować model przed jego zablokowaniem. |
SaveChanges() |
Zapisuje wszystkie zmiany wprowadzone w tym kontekście w bazowej bazie danych. |
SaveChangesAsync() |
Asynchronicznie zapisuje wszystkie zmiany wprowadzone w tym kontekście w bazowej bazie danych. |
SaveChangesAsync(CancellationToken) |
Asynchronicznie zapisuje wszystkie zmiany wprowadzone w tym kontekście w bazowej bazie danych. |
Set(Type) |
Zwraca wystąpienie inne niż ogólne DbSet w celu uzyskania dostępu do jednostek danego typu w kontekście i bazowym magazynie. |
Set<TEntity>() |
DbSet<TEntity> Zwraca wystąpienie dostępu do jednostek danego typu w kontekście i bazowym magazynie. |
ShouldValidateEntity(DbEntityEntry) |
Punkt rozszerzenia umożliwiający użytkownikowi zastąpienie domyślnego zachowania weryfikacji tylko dodanych i zmodyfikowanych jednostek. |
ToString() |
Wystąpienie DbContext reprezentuje kombinację wzorców Unit Of Work i Repository, dzięki czemu może służyć do wykonywania zapytań z bazy danych i grupowania zmian, które następnie zostaną zapisane z powrotem do magazynu jako jednostka. Obiekt DbContext jest koncepcyjnie podobny do ObjectContext. |
ValidateEntity(DbEntityEntry, IDictionary<Object,Object>) |
Punkt rozszerzenia umożliwiający użytkownikowi dostosowanie walidacji jednostki lub odfiltrowanie wyników walidacji. Wywoływane przez GetValidationErrors(). |
Jawne implementacje interfejsu
IObjectContextAdapter.ObjectContext |
Zwraca obiekt Entity Framework ObjectContext, który jest bazowym tym kontekstem. |