Udostępnij za pośrednictwem


DbContext Klasa

Definicja

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 contextOwnsConnection jest to false.

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 contextOwnsConnection jest to false.

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.

Dotyczy