Sdílet prostřednictvím


DbContext Třída

Definice

Instance DbContext představuje kombinaci vzorů Unit Of Work a Repository tak, že se dá použít k dotazování z databáze a seskupit změny, které se pak zapíšou zpět do úložiště jako jednotka. DbContext je koncepčně podobný objektu 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
Dědičnost
DbContext
Odvozené
Atributy
Implementuje

Poznámky

DbContext se obvykle používá s odvozeným typem, který obsahuje DbSet<TEntity> vlastnosti pro kořenové entity modelu. Tyto sady jsou automaticky inicializovány při vytvoření instance odvozené třídy. Toto chování lze upravit použitím atributu SuppressDbSetInitializationAttribute buď na celou odvozenou třídu kontextu, nebo na jednotlivé vlastnosti třídy. Model Entity Data Model, který je pozadím kontextu, lze zadat několika způsoby. Při použití přístupu Code First se DbSet<TEntity> vlastnosti odvozeného kontextu používají k sestavení modelu podle konvence. Chráněnou metodu OnModelCreating lze přepsat, aby se tento model vyladil. Větší kontrolu nad modelem použitým pro přístup Model First lze získat tak, že explicitně vytvoříte DbCompiledModel z objektu DbModelBuilder a předáte tento model některému z konstruktorů DbContext. Při použití přístupu Database First nebo Model First je možné model Entity Data Model vytvořit pomocí entity Designer (nebo ručně vytvořením souboru EDMX) a pak lze tento model zadat pomocí připojovacího řetězce entity nebo objektuEntityConnection. Připojení k databázi (včetně názvu databáze) lze zadat několika způsoby. Pokud je konstruktor DbContext bez parametrů volán z odvozeného kontextu, pak se název odvozeného kontextu použije k vyhledání připojovacího řetězce v souboru app.config nebo web.config. Pokud není nalezen žádný připojovací řetězec, pak se název předá DefaultConnectionFactory zaregistrované ve Database třídě. Objekt pro vytváření připojení pak použije název kontextu jako název databáze ve výchozím připojovacím řetězci. (Tento výchozí připojovací řetězec odkazuje na .\SQLEXPRESS na místním počítači, pokud není zaregistrovaný jiný DefaultConnectionFactory.) Místo použití odvozeného názvu kontextu může být název připojení nebo databáze také explicitně určen předáním názvu do některého z konstruktorů DbContext, který přebírá řetězec. Název lze předat také ve formátu "name=myname". V takovém případě musí být název nalezen v konfiguračním souboru, jinak dojde k výjimce. Všimněte si, že připojení nalezené v souboru app.config nebo web.config může být normálním připojovacím řetězcem databáze (nikoli speciálním připojovacím řetězcem Entity Framework). V takovém případě dbContext použije Code First. Pokud je však připojení nalezené v konfiguračním souboru speciálním připojovacím řetězcem Entity Framework, pak DbContext použije Database/Model First a použije se model zadaný v připojovacím řetězci. Místo názvu databáze nebo připojení se dá použít také existující nebo explicitně vytvořený DbConnection. A DbModelBuilderVersionAttribute lze použít na třídu odvozenou z DbContext k nastavení verze konvencí používaných kontextem při vytváření modelu. Pokud se nepoužije žádný atribut, použije se nejnovější verze konvencí.

Konstruktory

DbContext()

Vytvoří novou instanci kontextu pomocí konvencí k vytvoření názvu databáze, ke které bude provedeno připojení. Název podle konvence je úplný název (obor názvů + název třídy) odvozené třídy kontextu. Informace o tom, jak se to používá k vytvoření připojení, najdete v poznámkách ke třídě.

DbContext(DbCompiledModel)

Vytvoří novou instanci kontextu pomocí konvencí k vytvoření názvu databáze, ke které se vytvoří připojení, a inicializuje ji z daného modelu. Název podle konvence je úplný název (obor názvů + název třídy) odvozené třídy kontextu. Informace o tom, jak se to používá k vytvoření připojení, najdete v poznámkách ke třídě.

DbContext(DbConnection, Boolean)

Vytvoří novou instanci kontextu pomocí existujícího připojení pro připojení k databázi. Připojení nebude odstraněno, pokud je kontext odstraněn, pokud contextOwnsConnection je false.

DbContext(DbConnection, DbCompiledModel, Boolean)

Vytvoří novou instanci kontextu pomocí existujícího připojení pro připojení k databázi a inicializuje ji z daného modelu. Připojení nebude odstraněno, pokud je kontext odstraněn, pokud contextOwnsConnection je false.

DbContext(ObjectContext, Boolean)

Vytvoří novou instanci kontextu kolem existující ObjectContext.

DbContext(ObjectContext, Boolean)

Vytvoří novou instanci kontextu kolem existující ObjectContext.

DbContext(String)

Vytvoří novou instanci kontextu pomocí daného řetězce jako názvu nebo připojovacího řetězce pro databázi, ke které bude provedeno připojení. Informace o tom, jak se to používá k vytvoření připojení, najdete v poznámkách ke třídě.

DbContext(String, DbCompiledModel)

Vytvoří novou instanci kontextu s použitím daného řetězce jako názvu nebo připojovacího řetězce pro databázi, ke které bude provedeno připojení, a inicializuje ji z daného modelu. Informace o tom, jak se to používá k vytvoření připojení, najdete v poznámkách ke třídě.

Vlastnosti

ChangeTracker

Poskytuje přístup k funkcím kontextu, které se zabývají sledováním změn entit.

Configuration

Poskytuje přístup k možnostem konfigurace pro kontext.

Database

Vytvoří instanci databáze pro tento kontext, která umožňuje kontroly vytvoření, odstranění nebo existence podkladové databáze.

Metody

Dispose()

Zavolá chráněnou metodu Dispose.

Dispose(Boolean)

Odstraní kontext. Podklad je ObjectContext také uvolněn, pokud byl vytvořen v tomto kontextu nebo bylo vlastnictví předáno tomuto kontextu při vytvoření tohoto kontextu. Připojení k databázi (DbConnection objektu) je také odstraněno, pokud byl vytvořen tímto kontextem nebo bylo vlastnictví předáno tomuto kontextu při vytvoření tohoto kontextu.

Entry(Object)

Získá objekt pro danou DbEntityEntry entitu poskytující přístup k informacím o entitě a schopnost provádět akce s entitou.

Entry<TEntity>(TEntity)

Získá objekt pro danou DbEntityEntry<TEntity> entitu poskytující přístup k informacím o entitě a schopnost provádět akce s entitou.

Equals(Object)

Instance DbContext představuje kombinaci vzorů Unit Of Work a Repository tak, že se dá použít k dotazování z databáze a seskupit změny, které se pak zapíšou zpět do úložiště jako jednotka. DbContext je koncepčně podobný objektu ObjectContext.

GetHashCode()

Instance DbContext představuje kombinaci vzorů Unit Of Work a Repository tak, že se dá použít k dotazování z databáze a seskupit změny, které se pak zapíšou zpět do úložiště jako jednotka. DbContext je koncepčně podobný objektu ObjectContext.

GetType()

Instance DbContext představuje kombinaci vzorů Unit Of Work a Repository tak, že se dá použít k dotazování z databáze a seskupit změny, které se pak zapíšou zpět do úložiště jako jednotka. DbContext je koncepčně podobný objektu ObjectContext.

GetValidationErrors()

Ověří sledované entity a vrátí kolekci DbEntityValidationResult obsahující výsledky ověření.

OnModelCreating(DbModelBuilder)

Tato metoda je volána, když byl model pro odvozený kontext inicializován, ale před uzamčením modelu a použitým k inicializaci kontextu. Výchozí implementace této metody neprovede nic, ale může být přepsána v odvozené třídě, aby bylo možné model dále nakonfigurovat před uzamčením.

SaveChanges()

Uloží všechny změny provedené v tomto kontextu do podkladové databáze.

SaveChangesAsync()

Asynchronně uloží všechny změny provedené v tomto kontextu do podkladové databáze.

SaveChangesAsync(CancellationToken)

Asynchronně uloží všechny změny provedené v tomto kontextu do podkladové databáze.

Set(Type)

Vrátí negenerovou DbSet instanci pro přístup k entitě daného typu v kontextu a podkladovém úložišti.

Set<TEntity>()

DbSet<TEntity> Vrátí instanci pro přístup k entitě daného typu v kontextu a podkladovém úložišti.

ShouldValidateEntity(DbEntityEntry)

Bod rozšíření, který uživateli umožňuje přepsat výchozí chování ověřování pouze přidaných a upravených entitách.

ToString()

Instance DbContext představuje kombinaci vzorů Unit Of Work a Repository tak, že se dá použít k dotazování z databáze a seskupit změny, které se pak zapíšou zpět do úložiště jako jednotka. DbContext je koncepčně podobný objektu ObjectContext.

ValidateEntity(DbEntityEntry, IDictionary<Object,Object>)

Bod rozšíření, který uživateli umožňuje přizpůsobit ověření entity nebo odfiltrovat výsledky ověření. Volá ho .GetValidationErrors()

Explicitní implementace rozhraní

IObjectContextAdapter.ObjectContext

Vrátí Entity Framework ObjectContext, který je podkladem tohoto kontextu.

Platí pro