Jazyk

DatabaseFacade Třída

Definice

Poskytuje přístup k informacím a operacím souvisejícím s databází pro kontext. Instance této třídy jsou obvykle získány z Database a není navržena tak, aby byla přímo vytvořena v kódu aplikace.

public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>
[System.Runtime.CompilerServices.Nullable(0)]
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Infrastructure.IResettableService, Microsoft.EntityFrameworkCore.Storage.IDatabaseFacadeDependenciesAccessor
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Storage.IDatabaseFacadeDependenciesAccessor
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Infrastructure.IResettableService, Microsoft.EntityFrameworkCore.Storage.IDatabaseFacadeDependenciesAccessor
type DatabaseFacade = class
    interface IInfrastructure<IServiceProvider>
[<System.Runtime.CompilerServices.Nullable(0)>]
type DatabaseFacade = class
    interface IInfrastructure<IServiceProvider>
    interface IDatabaseFacadeDependenciesAccessor
    interface IResettableService
type DatabaseFacade = class
    interface IInfrastructure<IServiceProvider>
    interface IDatabaseFacadeDependenciesAccessor
type DatabaseFacade = class
    interface IInfrastructure<IServiceProvider>
    interface IDatabaseFacadeDependenciesAccessor
    interface IResettableService
Public Class DatabaseFacade
Implements IInfrastructure(Of IServiceProvider)
Public Class DatabaseFacade
Implements IDatabaseFacadeDependenciesAccessor, IInfrastructure(Of IServiceProvider), IResettableService
Public Class DatabaseFacade
Implements IDatabaseFacadeDependenciesAccessor, IInfrastructure(Of IServiceProvider)
Dědičnost
DatabaseFacade
Atributy
Implementuje
IInfrastructure<IServiceProvider> IResettableService IDatabaseFacadeDependenciesAccessor Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor

Konstruktory

Název Description
DatabaseFacade(DbContext)

Inicializuje novou instanci DatabaseFacade třídy. Instance této třídy jsou obvykle získány z Database a není navržena tak, aby byla přímo vytvořena v kódu aplikace.

Vlastnosti

Název Description
AutoSavepointsEnabled

Zda transakce savepoint bude vytvořen automaticky SaveChanges() , pokud je volána po transakci byl ručně spuštěn s BeginTransaction().

AutoTransactionBehavior

Získá nebo nastaví hodnotu určující, zda transakce bude vytvořena automaticky SaveChanges() , pokud nebyla volána "BeginTransaction" ani UseTransaction.

AutoTransactionsEnabled
Zastaralé.
Zastaralé.

Získá nebo nastaví hodnotu určující, zda transakce bude vytvořena automaticky SaveChanges() , pokud nebyla volána žádná z 'BeginTransaction' nebo 'UseTransaction' metody.

CurrentTransaction

Získá aktuální IDbContextTransaction , který používá kontext, nebo null pokud se nepoužívá žádná transakce.

ProviderName

Vrátí název zprostředkovatele databáze, který se právě používá. Název je obvykle název sestavení zprostředkovatele. Obvykle je jednodušší použít metodu cukru, například Microsoft.EntityFrameworkCore.SqlServerDatabaseFacadeExtensions.IsSqlServer místo přímého volání této metody.

Metody

Název Description
BeginTransaction()

Spustí novou transakci.

BeginTransactionAsync(CancellationToken)

Asynchronně spustí novou transakci.

CanConnect()

Určuje, zda je databáze k dispozici a může být připojena.

CanConnectAsync(CancellationToken)

Určuje, zda je databáze k dispozici a může být připojena.

CommitTransaction()

Použije nevyřízených operací v aktuální transakci na databázi.

CommitTransactionAsync(CancellationToken)

Použije nevyřízených operací v aktuální transakci na databázi.

CreateExecutionStrategy()

Vytvoří instanci nakonfigurovaného IExecutionStrategyobjektu .

EnsureCreated()

Zajišťuje, že databáze pro kontext existuje.

EnsureCreatedAsync(CancellationToken)

Zajišťuje, že databáze pro kontext existuje.

EnsureDeleted()

Zajišťuje, že databáze pro kontext neexistuje. Pokud neexistuje, neprovede se žádná akce. Pokud existuje, databáze se odstraní.

Upozornění: Odstraní se celá databáze a není nutné odebrat pouze databázové objekty používané modelem pro tento kontext.

EnsureDeletedAsync(CancellationToken)

Asynchronně zajišťuje, že databáze pro kontext neexistuje. Pokud neexistuje, neprovede se žádná akce. Pokud existuje, databáze se odstraní.

Upozornění: Odstraní se celá databáze a není nutné odebrat pouze databázové objekty používané modelem pro tento kontext.

RollbackTransaction()

Zahodí nevyřízených operací v aktuální transakci.

RollbackTransactionAsync(CancellationToken)

Zahodí nevyřízených operací v aktuální transakci.

Explicitní implementace rozhraní

Název Description
IDatabaseFacadeDependenciesAccessor.Context

Jedná se o interní rozhraní API, které podporuje infrastrukturu Entity Framework Core a nevztahuje se na stejné standardy kompatibility jako veřejná rozhraní API. Může se změnit nebo odebrat bez upozornění v jakékoli verzi. Měli byste ho používat přímo ve svém kódu s extrémní opatrností a vědět, že to může vést k selháním aplikace při aktualizaci na novou Entity Framework Core verzi.

IDatabaseFacadeDependenciesAccessor.Dependencies

Jedná se o interní rozhraní API, které podporuje infrastrukturu Entity Framework Core a nevztahuje se na stejné standardy kompatibility jako veřejná rozhraní API. Může se změnit nebo odebrat bez upozornění v jakékoli verzi. Měli byste ho používat přímo ve svém kódu s extrémní opatrností a vědět, že to může vést k selháním aplikace při aktualizaci na novou Entity Framework Core verzi.

IInfrastructure<IServiceProvider>.Instance

Získá vymezený IServiceProvider obor používaný k překladu služeb.

Tato vlastnost je určená pro použití metodami rozšíření, které potřebují využívat služby, které nejsou přímo vystaveny na povrchu veřejného rozhraní API.

IResettableService.ResetState()

Obnoví službu tak, aby ji bylo možné použít z fondu.

IResettableService.ResetStateAsync(CancellationToken)

Poskytuje přístup k informacím a operacím souvisejícím s databází pro kontext. Instance této třídy jsou obvykle získány z Database a není navržena tak, aby byla přímo vytvořena v kódu aplikace.

Metody rozšíření

Název Description
AppendSessionToken(DatabaseFacade, String)

Připojí složený token relace pro výchozí kontejner pro tento DbContext.

AppendSessionTokens(DatabaseFacade, IReadOnlyDictionary<String,String>)

Připojí složený token relací pro DbContext každý kontejner s tokeny zadanými v sessionTokens.

BeginTransaction(DatabaseFacade, IsolationLevel)

Spustí novou transakci s danou IsolationLevel.

BeginTransactionAsync(DatabaseFacade, IsolationLevel, CancellationToken)

Asynchronně spustí novou transakci s danou IsolationLevel.

CloseConnection(DatabaseFacade)

Zavře podkladový objekt DbConnection.

CloseConnectionAsync(DatabaseFacade)

Zavře podkladový objekt DbConnection.

EnlistTransaction(DatabaseFacade, Transaction)

Určuje existující Transaction , který se má použít pro databázové operace.

ExecuteSql(DatabaseFacade, FormattableString)

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken)

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

ExecuteSqlCommand(DatabaseFacade, FormattableString)
Zastaralé.

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

Všimněte si, že tato metoda nespustí transakci. Chcete-li použít tuto metodu s transakcí, první volání BeginTransaction(DatabaseFacade, IsolationLevel) nebo UseTransaction(DatabaseFacade, DbTransaction).

Všimněte si, že aktuální ExecutionStrategy není používán touto metodou, protože SQL nemusí být idempotentní a nespustí v transakci. ExecutionStrategy lze použít explicitně a ujistěte se, že také použít transakci, pokud SQL není idempotentní.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli vstup uživatele pro ochranu před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout vlastníky umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter - context.Database.ExecuteSqlCommand($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})").

ExecuteSqlCommand(DatabaseFacade, RawSqlString, IEnumerable<Object>)
Zastaralé.

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

Všimněte si, že tato metoda nespustí transakci. Chcete-li použít tuto metodu s transakcí, první volání BeginTransaction(DatabaseFacade, IsolationLevel) nebo UseTransaction(DatabaseFacade, DbTransaction).

Všimněte si, že aktuální ExecutionStrategy není používán touto metodou, protože SQL nemusí být idempotentní a nespustí v transakci. ExecutionStrategy lze použít explicitně a ujistěte se, že také použít transakci, pokud SQL není idempotentní.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli vstup uživatele pro ochranu před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout vlastníky umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny zadané hodnoty parametrů se automaticky převedou na DbParameter. Můžete také zvážit použití ExecuteSqlInterpolated k vytvoření parametrů pomocí interpolované syntaxe řetězců.

ExecuteSqlCommand(DatabaseFacade, RawSqlString, Object[])
Zastaralé.

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

Všimněte si, že tato metoda nespustí transakci. Chcete-li použít tuto metodu s transakcí, první volání BeginTransaction(DatabaseFacade, IsolationLevel) nebo UseTransaction(DatabaseFacade, DbTransaction).

Všimněte si, že aktuální ExecutionStrategy není používán touto metodou, protože SQL nemusí být idempotentní a nespustí v transakci. ExecutionStrategy lze použít explicitně a ujistěte se, že také použít transakci, pokud SQL není idempotentní.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli vstup uživatele pro ochranu před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout vlastníky umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter - context.Database.ExecuteSqlCommand("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm). Můžete také zvážit použití ExecuteSqlInterpolated k vytvoření parametrů pomocí interpolované syntaxe řetězců.

ExecuteSqlCommand(DatabaseFacade, String, Object[])

Poskytuje přístup k informacím a operacím souvisejícím s databází pro kontext. Instance této třídy jsou obvykle získány z Database a není navržena tak, aby byla přímo vytvořena v kódu aplikace.

ExecuteSqlCommandAsync(DatabaseFacade, FormattableString, CancellationToken)
Zastaralé.

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

Všimněte si, že tato metoda nespustí transakci. Chcete-li použít tuto metodu s transakcí, první volání BeginTransaction(DatabaseFacade, IsolationLevel) nebo UseTransaction(DatabaseFacade, DbTransaction).

Všimněte si, že aktuální ExecutionStrategy není používán touto metodou, protože SQL nemusí být idempotentní a nespustí v transakci. ExecutionStrategy lze použít explicitně a ujistěte se, že také použít transakci, pokud SQL není idempotentní.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli vstup uživatele pro ochranu před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout vlastníky umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter - context.Database.ExecuteSqlCommandAsync($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})").

ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, CancellationToken)
Zastaralé.

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

Všimněte si, že tato metoda nespustí transakci. Chcete-li použít tuto metodu s transakcí, první volání BeginTransaction(DatabaseFacade, IsolationLevel) nebo UseTransaction(DatabaseFacade, DbTransaction).

Všimněte si, že aktuální ExecutionStrategy není používán touto metodou, protože SQL nemusí být idempotentní a nespustí v transakci. ExecutionStrategy lze použít explicitně a ujistěte se, že také použít transakci, pokud SQL není idempotentní.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli vstup uživatele pro ochranu před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout vlastníky umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter - context.Database.ExecuteSqlCommandAsync("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm).

ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, IEnumerable<Object>, CancellationToken)
Zastaralé.

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

Všimněte si, že tato metoda nespustí transakci. Chcete-li použít tuto metodu s transakcí, první volání BeginTransaction(DatabaseFacade, IsolationLevel) nebo UseTransaction(DatabaseFacade, DbTransaction).

Všimněte si, že aktuální ExecutionStrategy není používán touto metodou, protože SQL nemusí být idempotentní a nespustí v transakci. ExecutionStrategy lze použít explicitně a ujistěte se, že také použít transakci, pokud SQL není idempotentní.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli vstup uživatele pro ochranu před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout vlastníky umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny zadané hodnoty parametrů se automaticky převedou na DbParameter. Můžete také zvážit použití ExecuteSqlInterpolated k vytvoření parametrů pomocí interpolované syntaxe řetězců.

ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, Object[])
Zastaralé.

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

Všimněte si, že tato metoda nespustí transakci. Chcete-li použít tuto metodu s transakcí, první volání BeginTransaction(DatabaseFacade, IsolationLevel) nebo UseTransaction(DatabaseFacade, DbTransaction).

Všimněte si, že aktuální ExecutionStrategy není používán touto metodou, protože SQL nemusí být idempotentní a nespustí v transakci. ExecutionStrategy lze použít explicitně a ujistěte se, že také použít transakci, pokud SQL není idempotentní.

Stejně jako u jakéhokoli rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli vstup uživatele pro ochranu před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout vlastníky umístění parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter - context.Database.ExecuteSqlCommandAsync("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm). Můžete také zvážit použití ExecuteSqlInterpolated k vytvoření parametrů pomocí interpolované syntaxe řetězců.

ExecuteSqlCommandAsync(DatabaseFacade, String, CancellationToken, Object[])

Poskytuje přístup k informacím a operacím souvisejícím s databází pro kontext. Instance této třídy jsou obvykle získány z Database a není navržena tak, aby byla přímo vytvořena v kódu aplikace.

ExecuteSqlInterpolated(DatabaseFacade, FormattableString)
Zastaralé.

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

ExecuteSqlInterpolatedAsync(DatabaseFacade, FormattableString, CancellationToken)
Zastaralé.

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

ExecuteSqlRaw(DatabaseFacade, String, Object[])

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken)

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken)

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

ExecuteSqlRawAsync(DatabaseFacade, String, Object[])

Provede daný SQL pro databázi a vrátí počet ovlivněných řádků.

GenerateCreateScript(DatabaseFacade)

Vygeneruje skript pro vytvoření všech tabulek pro aktuální model.

GetAppliedMigrations(DatabaseFacade)

Získá všechny migrace použité pro cílovou databázi.

GetAppliedMigrationsAsync(DatabaseFacade, CancellationToken)

Asynchronně získá všechny migrace, které byly použity pro cílovou databázi.

GetCommandTimeout(DatabaseFacade)

Vrátí časový limit (v sekundách) nastavený pro příkazy spouštěné tímto DbContextparametrem .

GetConnectionString(DatabaseFacade)

Získá základní připojovací řetězec nakonfigurované pro tento DbContext.

GetCosmosClient(DatabaseFacade)

Získá podklad CosmosClient pro to DbContext.

GetCosmosDatabaseId(DatabaseFacade)

Získá nakonfigurovaný název databáze pro tento DbContext.

GetDbConnection(DatabaseFacade)

Získá základní ADO.NET DbConnection pro to DbContext.

GetEnlistedTransaction(DatabaseFacade)

Vrátí aktuálně zařazenou transakci.

GetInfrastructure<T>(IInfrastructure<T>)

Získá hodnotu z vlastnosti, která je skryta pomocí IInfrastructure<T>.

Tuto metodu obvykle používají poskytovatelé databáze (a další rozšíření). Obvykle se nepoužívá v kódu aplikace.

GetMigrations(DatabaseFacade)

Získá všechny migrace, které jsou definovány v konfigurovaném sestavení migrace.

GetPendingMigrations(DatabaseFacade)

Získá všechny migrace, které jsou definovány v sestavení, ale nebyly použity pro cílovou databázi.

GetPendingMigrationsAsync(DatabaseFacade, CancellationToken)

Asynchronně získá všechny migrace, které jsou definovány v sestavení, ale nebyly použity na cílovou databázi.

GetSessionToken(DatabaseFacade)

Získá složený token relace pro výchozí kontejner pro tento DbContext.

GetSessionTokens(DatabaseFacade)

Získá slovník, který obsahuje složený token relace na kontejner pro tento DbContext.

HasPendingModelChanges(DatabaseFacade)

Vrátí true , pokud má model čekající změny, které se mají použít.

IsCosmos(DatabaseFacade)

Vrátí true , pokud je aktuálně používán zprostředkovatel databáze Cosmos.

IsInMemory(DatabaseFacade)

Vrátí true , pokud je aktuálně používán zprostředkovatel databáze zprostředkovatelem v paměti.

IsRelational(DatabaseFacade)

Vrátí true , pokud je aktuálně používán zprostředkovatel databáze relační databáze.

IsSqlite(DatabaseFacade)

Vrátí true , pokud je aktuálně používán zprostředkovatel databáze SQLite.

IsSqlServer(DatabaseFacade)

Vrátítrue, pokud je aktuálně používán poskytovatel databáze SQL Server.

Migrate(DatabaseFacade, String)

Použije migrace pro kontext databáze. Vytvoří databázi, pokud ještě neexistuje.

Migrate(DatabaseFacade)

Použije všechny čekající migrace pro kontext databáze. Vytvoří databázi, pokud ještě neexistuje.

MigrateAsync(DatabaseFacade, CancellationToken)

Asynchronně použije všechny nevyřízené migrace pro kontext databáze. Vytvoří databázi, pokud ještě neexistuje.

MigrateAsync(DatabaseFacade, String, CancellationToken)

Asynchronně použije migrace pro kontext databáze. Vytvoří databázi, pokud ještě neexistuje.

OpenConnection(DatabaseFacade)

Otevře podkladový objekt DbConnection.

OpenConnectionAsync(DatabaseFacade, CancellationToken)

Otevře podkladový objekt DbConnection.

SetCommandTimeout(DatabaseFacade, Nullable<Int32>)

Nastaví časový limit (v sekundách), který se použije pro příkazy spouštěné tímto DbContextpříkazem .

SetCommandTimeout(DatabaseFacade, TimeSpan)

Nastaví časový limit, který se použije pro příkazy spouštěné tímto DbContextpříkazem .

SetConnectionString(DatabaseFacade, String)

Nastaví základní připojovací řetězec nakonfigurované pro toto DbContext.

SetDbConnection(DatabaseFacade, DbConnection, Boolean)

Nastaví základní ADO.NET DbConnection pro tento DbContext.

SetDbConnection(DatabaseFacade, DbConnection)

Nastaví základní ADO.NET DbConnection pro tento DbContext.

SqlQuery<TResult>(DatabaseFacade, FormattableString)

Vytvoří dotaz LINQ na základě nezpracovaného dotazu SQL, který vrátí sadu výsledků skalárního typu nativně podporovaného poskytovatelem databáze.

SqlQueryRaw<TResult>(DatabaseFacade, String, Object[])

Vytvoří dotaz LINQ na základě nezpracovaného dotazu SQL, který vrátí sadu výsledků skalárního typu nativně podporovaného poskytovatelem databáze.

UseSessionToken(DatabaseFacade, String)

Nastaví složený token relace pro výchozí kontejner pro tento DbContext.

UseSessionTokens(DatabaseFacade, IReadOnlyDictionary<String,String>)

Nastaví token složených relací pro DbContext každý kontejner s tokeny zadanými v sessionTokens.

UseTransaction(DatabaseFacade, DbTransaction, Guid)

DbTransaction Nastaví, aby je používaly databázové operace v nástroji DbContext.

UseTransaction(DatabaseFacade, DbTransaction)

DbTransaction Nastaví, aby je používaly databázové operace v nástroji DbContext.

UseTransactionAsync(DatabaseFacade, DbTransaction, CancellationToken)

DbTransaction Nastaví, aby je používaly databázové operace v nástroji DbContext.

UseTransactionAsync(DatabaseFacade, DbTransaction, Guid, CancellationToken)

DbTransaction Nastaví, aby je používaly databázové operace v nástroji DbContext.

Platí pro