DatabaseFacade Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje přístup k informacím a operacím souvisejícím s databází pro určitý kontext. Instance této třídy se obvykle získávají z Database a nejsou navrženy tak, aby byly přímo vytvořeny v kódu aplikace.
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>
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>
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)
Public Class DatabaseFacade
Implements IDatabaseFacadeDependenciesAccessor, IInfrastructure(Of IServiceProvider), IResettableService
- Dědičnost
-
DatabaseFacade
- Implementuje
-
IInfrastructure<IServiceProvider> Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor IDatabaseFacadeDependenciesAccessor IResettableService
Konstruktory
DatabaseFacade(DbContext) |
Inicializuje novou instanci DatabaseFacade třídy . Instance této třídy se obvykle získávají z Database a nejsou navrženy tak, aby byly přímo vytvořeny v kódu aplikace. |
Vlastnosti
AutoSavepointsEnabled |
Zda se bod uložení transakce vytvoří automaticky, pokud SaveChanges() je volána po ručním spuštění transakce s BeginTransaction(). |
AutoTransactionBehavior |
Získá nebo nastaví hodnotu označující, zda bude transakce vytvořena automaticky, SaveChanges() pokud beginTransaction ani 'UseTransaction' byla volána. |
AutoTransactionsEnabled |
Zastaralé.
Zastaralé.
Získá nebo nastaví hodnotu označující, zda bude transakce vytvořena automaticky, SaveChanges() pokud nebyla volána žádná z metod BeginTransaction nebo UseTransaction. |
CurrentTransaction |
Získá aktuální IDbContextTransaction , který se používá kontext, nebo null, pokud se nepoužívá žádná transakce. |
ProviderName |
Vrátí název aktuálně používaného poskytovatele databáze. Název je obvykle název sestavení zprostředkovatele. Obvykle je jednodušší použít metodu cukru, například Microsoft.EntityFrameworkCore.SqlServerDatabaseFacadeExtensions.IsSqlServer místo volání této metody přímo. |
Metody
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řešené operace v aktuální transakci na databázi. |
CommitTransactionAsync(CancellationToken) |
Použije nevyřešené operace v aktuální transakci na databázi. |
CreateExecutionStrategy() |
Vytvoří instanci konfigurovaného IExecutionStrategyobjektu . |
EnsureCreated() |
Zajišťuje, že databáze pro daný kontext existuje. |
EnsureCreatedAsync(CancellationToken) |
Zajišťuje, že databáze pro daný kontext existuje. |
EnsureDeleted() |
Zajišťuje, že databáze pro kontext neexistuje. Pokud neexistuje, neprovede se žádná akce. Pokud existuje, je databáze odstraněna. Upozornění: Odstraní se celá databáze a není vynaloženo úsilí na odebrání pouze databázových objektů, které model používá pro tento kontext. |
EnsureDeletedAsync(CancellationToken) |
Asynchronně zajišťuje, že databáze pro kontext neexistuje. Pokud neexistuje, neprovede se žádná akce. Pokud existuje, je databáze odstraněna. Upozornění: Odstraní se celá databáze a není vynaloženo úsilí na odebrání pouze databázových objektů, které model používá pro tento kontext. |
RollbackTransaction() |
Zahodí nevyřešené operace v aktuální transakci. |
RollbackTransactionAsync(CancellationToken) |
Zahodí nevyřešené operace v aktuální transakci. |
Explicitní implementace rozhraní
IDatabaseFacadeDependenciesAccessor.Context |
Jedná se o interní rozhraní API, které podporuje infrastrukturu Entity Framework Core a nepodléhá stejným standardům kompatibility jako veřejná rozhraní API. V libovolné verzi může být bez upozornění změněna nebo odebrána. Měli byste ho používat přímo v kódu pouze s mimořádnou opatrností a s vědomím, že při aktualizaci na novou verzi Entity Framework Core může dojít k selháním aplikace. |
IDatabaseFacadeDependenciesAccessor.Dependencies |
Jedná se o interní rozhraní API, které podporuje infrastrukturu Entity Framework Core a nepodléhá stejným standardům kompatibility jako veřejná rozhraní API. V libovolné verzi může být bez upozornění změněna nebo odebrána. Měli byste ho používat přímo v kódu pouze s mimořádnou opatrností a s vědomím, že při aktualizaci na novou verzi Entity Framework Core může dojít k selháním aplikace. |
IInfrastructure<IServiceProvider>.Instance |
Získá vymezený IServiceProvider , který se používá k překladu služeb. Tato vlastnost je určená k použití rozšiřujícími metodami, které potřebují využívat služby, které nejsou přímo vystavené na veřejném prostoru rozhraní API. |
IResettableService.ResetState() |
Resetuje službu, aby ji bylo možné používat z fondu. |
IResettableService.ResetStateAsync(CancellationToken) |
Poskytuje přístup k informacím a operacím souvisejícím s databází pro určitý kontext. Instance této třídy se obvykle získávají z Database a nejsou navrženy tak, aby byly přímo vytvořeny v kódu aplikace. |
Metody rozšíření
GetCosmosClient(DatabaseFacade) |
Získá podkladovou CosmosClient hodnotu pro tento DbContextobjekt . |
GetCosmosDatabaseId(DatabaseFacade) |
Získá název nakonfigurované databáze pro tento DbContext. |
IsCosmos(DatabaseFacade) |
Vrátí hodnotu |
GetInfrastructure<T>(IInfrastructure<T>) |
Získá hodnotu z vlastnosti, která je skryta pomocí IInfrastructure<T>. Tuto metodu obvykle používají poskytovatelé databází (a další rozšíření). Obvykle se nepoužívá v kódu aplikace. |
IsInMemory(DatabaseFacade) |
Vrátí hodnotu |
BeginTransaction(DatabaseFacade, IsolationLevel) |
Spustí novou transakci s daným IsolationLevel. |
BeginTransactionAsync(DatabaseFacade, IsolationLevel, CancellationToken) |
Asynchronně spustí novou transakci s daným IsolationLevelobjektem . |
CloseConnection(DatabaseFacade) |
Zavře základní DbConnectionobjekt . |
CloseConnectionAsync(DatabaseFacade) |
Zavře základní DbConnectionobjekt . |
ExecuteSql(DatabaseFacade, FormattableString) |
Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků. |
ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken) |
Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků. |
ExecuteSqlCommand(DatabaseFacade, RawSqlString, IEnumerable<Object>) |
Zastaralé.
Spustí daný jazyk SQL proti 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í, nejprve zavolejte 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ě, přičemž nezapomeňte také použít transakci, pokud SQL není idempotentní. Stejně jako u každého rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitelé míst parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter. Můžete také zvážit použití executeSqlInterpolated k vytvoření parametrů pomocí syntaxe interpolovaných řetězců. |
ExecuteSqlCommand(DatabaseFacade, RawSqlString, Object[]) |
Zastaralé.
Spustí daný jazyk SQL proti 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í, nejprve zavolejte 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ě, přičemž nezapomeňte také použít transakci, pokud SQL není idempotentní.
Stejně jako u každého rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitelé míst parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter – |
ExecuteSqlCommand(DatabaseFacade, FormattableString) |
Zastaralé.
Spustí daný jazyk SQL proti 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í, nejprve zavolejte 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ě, přičemž nezapomeňte také použít transakci, pokud SQL není idempotentní.
Stejně jako u každého rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitelé míst parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter – |
ExecuteSqlCommand(DatabaseFacade, String, Object[]) |
Poskytuje přístup k informacím a operacím souvisejícím s databází pro určitý kontext. Instance této třídy se obvykle získávají z Database a nejsou navrženy tak, aby byly přímo vytvořeny v kódu aplikace. |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, IEnumerable<Object>, CancellationToken) |
Zastaralé.
Spustí daný jazyk SQL proti 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í, nejprve zavolejte 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ě, přičemž nezapomeňte také použít transakci, pokud SQL není idempotentní. Stejně jako u každého rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitelé míst parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter. Můžete také zvážit použití executeSqlInterpolated k vytvoření parametrů pomocí syntaxe interpolovaných řetězců. |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, Object[]) |
Zastaralé.
Spustí daný jazyk SQL proti 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í, nejprve zavolejte 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ě, přičemž nezapomeňte také použít transakci, pokud SQL není idempotentní.
Stejně jako u každého rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitelé míst parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter – |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, CancellationToken) |
Zastaralé.
Spustí daný jazyk SQL proti 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í, nejprve zavolejte 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ě, přičemž nezapomeňte také použít transakci, pokud SQL není idempotentní.
Stejně jako u každého rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitelé míst parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter – |
ExecuteSqlCommandAsync(DatabaseFacade, FormattableString, CancellationToken) |
Zastaralé.
Spustí daný jazyk SQL proti 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í, nejprve zavolejte 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ě, přičemž nezapomeňte také použít transakci, pokud SQL není idempotentní.
Stejně jako u každého rozhraní API, které přijímá SQL, je důležité parametrizovat jakýkoli uživatelský vstup, aby se chránil před útokem prostřednictvím injektáže SQL. Do řetězce dotazu SQL můžete zahrnout držitelé míst parametrů a pak zadat hodnoty parametrů jako další argumenty. Všechny hodnoty parametrů, které zadáte, se automaticky převedou na DbParameter – |
ExecuteSqlCommandAsync(DatabaseFacade, String, CancellationToken, Object[]) |
Poskytuje přístup k informacím a operacím souvisejícím s databází pro určitý kontext. Instance této třídy se obvykle získávají z Database a nejsou navrženy tak, aby byly přímo vytvořeny v kódu aplikace. |
ExecuteSqlInterpolated(DatabaseFacade, FormattableString) |
Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků. |
ExecuteSqlInterpolatedAsync(DatabaseFacade, FormattableString, CancellationToken) |
Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků. |
ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>) |
Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků. |
ExecuteSqlRaw(DatabaseFacade, String, Object[]) |
Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků. |
ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken) |
Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků. |
ExecuteSqlRawAsync(DatabaseFacade, String, Object[]) |
Spustí daný jazyk SQL proti databázi a vrátí počet ovlivněných řádků. |
ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken) |
Spustí daný jazyk SQL proti 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, které byly použity na cílovou databázi. |
GetAppliedMigrationsAsync(DatabaseFacade, CancellationToken) |
Asynchronně získá všechny migrace, které byly použity na cílovou databázi. |
GetCommandTimeout(DatabaseFacade) |
Vrátí časový limit (v sekundách) nastavený pro příkazy spuštěné pomocí tohoto DbContextpříkazu . |
GetConnectionString(DatabaseFacade) |
Získá podkladovou připojovací řetězec nakonfigurovanou pro tento DbContextobjekt . |
GetDbConnection(DatabaseFacade) |
Získá základní ADO.NET DbConnection pro tento DbContextobjekt . |
GetMigrations(DatabaseFacade) |
Získá všechny migrace, které jsou definovány v sestavení nakonfigurované migrace. |
GetPendingMigrations(DatabaseFacade) |
Získá všechny migrace, které jsou definovány v sestavení, ale nebyly použity na 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. |
HasPendingModelChanges(DatabaseFacade) |
Vrátí hodnotu |
IsRelational(DatabaseFacade) |
Vrátí hodnotu |
Migrate(DatabaseFacade) |
Použije všechny čekající migrace pro kontext do databáze. Vytvoří databázi, pokud ještě neexistuje. |
MigrateAsync(DatabaseFacade, CancellationToken) |
Asynchronně použije všechny čekající migrace pro kontext na databázi. Vytvoří databázi, pokud ještě neexistuje. |
OpenConnection(DatabaseFacade) |
Otevře základní DbConnectionobjekt . |
OpenConnectionAsync(DatabaseFacade, CancellationToken) |
Otevře základní DbConnectionobjekt . |
SetCommandTimeout(DatabaseFacade, Nullable<Int32>) |
Nastaví časový limit (v sekundách), který se má použít pro příkazy spouštěné s tímto DbContextpříkazem . |
SetCommandTimeout(DatabaseFacade, TimeSpan) |
Nastaví časový limit pro příkazy spuštěné s tímto DbContextpříkazem . |
SetConnectionString(DatabaseFacade, String) |
Nastaví základní připojovací řetězec nakonfigurované pro tento DbContextobjekt . |
SetDbConnection(DatabaseFacade, DbConnection, Boolean) |
Nastaví základní ADO.NET DbConnection pro tento DbContextobjekt . |
SetDbConnection(DatabaseFacade, DbConnection) |
Nastaví základní ADO.NET DbConnection pro tento DbContextobjekt . |
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. |
UseTransaction(DatabaseFacade, DbTransaction, Guid) |
Nastaví pro DbTransaction použití databázovými operacemi na .DbContext |
UseTransaction(DatabaseFacade, DbTransaction) |
Nastaví pro DbTransaction použití databázovými operacemi na .DbContext |
UseTransactionAsync(DatabaseFacade, DbTransaction, Guid, CancellationToken) |
Nastaví pro DbTransaction použití databázovými operacemi na .DbContext |
UseTransactionAsync(DatabaseFacade, DbTransaction, CancellationToken) |
Nastaví pro DbTransaction použití databázovými operacemi na .DbContext |
IsSqlite(DatabaseFacade) |
Vrátí hodnotu |
IsSqlServer(DatabaseFacade) |
Vrátí hodnotu |
EnlistTransaction(DatabaseFacade, Transaction) |
Určuje existující Transaction , který se má použít pro databázové operace. |
GetEnlistedTransaction(DatabaseFacade) |
Vrátí aktuálně zařazenou transakci. |
Platí pro
Entity Framework