DatabaseFacade Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет доступ к связанной с базой данных информации и операциям для контекста. Экземпляры этого класса обычно получаются из Database и не предназначены для непосредственного создания в коде приложения.
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
- Наследование
-
DatabaseFacade
- Реализации
-
IInfrastructure<IServiceProvider> Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor IDatabaseFacadeDependenciesAccessor IResettableService
Конструкторы
DatabaseFacade(DbContext) |
Инициализирует новый экземпляр класса DatabaseFacade. Экземпляры этого класса обычно получаются из Database и не предназначены для непосредственного создания в коде приложения. |
Свойства
AutoSavepointsEnabled |
Указывает, будет ли точка сохранения транзакции создаваться автоматически, если она вызывается после запуска транзакции вручную с BeginTransaction().SaveChanges() |
AutoTransactionBehavior |
Возвращает или задает значение, указывающее, будет ли автоматически создана SaveChanges() транзакция, если не были вызваны ни BeginTransaction, ни UseTransaction. |
AutoTransactionsEnabled |
Устаревшие..
Устаревшие..
Возвращает или задает значение, указывающее, будет ли автоматически создана SaveChanges() транзакция, если ни один из методов BeginTransaction или UseTransaction не был вызван. |
CurrentTransaction |
Возвращает текущий IDbContextTransaction объект, используемый контекстом, или значение NULL, если транзакция не используется. |
ProviderName |
Возвращает имя используемого поставщика базы данных. Обычно это имя сборки поставщика. Обычно проще использовать метод сахара, например Microsoft.EntityFrameworkCore.SqlServerDatabaseFacadeExtensions.IsSqlServer , вместо прямого вызова этого метода. |
Методы
BeginTransaction() |
Запускает новую транзакцию. |
BeginTransactionAsync(CancellationToken) |
Асинхронно запускает новую транзакцию. |
CanConnect() |
Определяет, доступна ли база данных и к ней можно подключиться. |
CanConnectAsync(CancellationToken) |
Определяет, доступна ли база данных и к ней можно подключиться. |
CommitTransaction() |
Применяет к базе данных невыполненные операции в текущей транзакции. |
CommitTransactionAsync(CancellationToken) |
Применяет к базе данных невыполненные операции в текущей транзакции. |
CreateExecutionStrategy() |
Создает экземпляр настроенного IExecutionStrategyобъекта . |
EnsureCreated() |
Гарантирует, что база данных для контекста существует. |
EnsureCreatedAsync(CancellationToken) |
Гарантирует, что база данных для контекста существует. |
EnsureDeleted() |
Гарантирует, что база данных для контекста не существует. Если он не существует, никакие действия не предпринимаются. Если она существует, база данных удаляется. Предупреждение. Удаляется вся база данных, и для удаления только объектов базы данных, используемых моделью для этого контекста, не предпринимается никаких усилий. |
EnsureDeletedAsync(CancellationToken) |
Асинхронно гарантирует, что база данных для контекста не существует. Если он не существует, никакие действия не предпринимаются. Если она существует, база данных удаляется. Предупреждение. Удаляется вся база данных, и для удаления только объектов базы данных, используемых моделью для этого контекста, не предпринимается никаких усилий. |
RollbackTransaction() |
Отменяет невыполненные операции в текущей транзакции. |
RollbackTransactionAsync(CancellationToken) |
Отменяет невыполненные операции в текущей транзакции. |
Явные реализации интерфейса
IDatabaseFacadeDependenciesAccessor.Context |
Это внутренний API, который поддерживает инфраструктуру Entity Framework Core и не подчиняется тем же стандартам совместимости, что и общедоступные API. Он может быть изменен или удален без уведомления в любом выпуске. Его следует использовать только непосредственно в коде с особой осторожностью, зная, что это может привести к сбоям приложений при обновлении до нового выпуска Entity Framework Core. |
IDatabaseFacadeDependenciesAccessor.Dependencies |
Это внутренний API, который поддерживает инфраструктуру Entity Framework Core и не подчиняется тем же стандартам совместимости, что и общедоступные API. Он может быть изменен или удален без уведомления в любом выпуске. Его следует использовать только непосредственно в коде с особой осторожностью, зная, что это может привести к сбоям приложений при обновлении до нового выпуска Entity Framework Core. |
IInfrastructure<IServiceProvider>.Instance |
Возвращает область, IServiceProvider используемую для разрешения служб. Это свойство предназначено для использования методами расширения, которым необходимо использовать службы, не предоставляемые напрямую в общедоступной области API. |
IResettableService.ResetState() |
Сбрасывает службу, чтобы ее можно было использовать из пула. |
IResettableService.ResetStateAsync(CancellationToken) |
Предоставляет доступ к связанной с базой данных информации и операциям для контекста. Экземпляры этого класса обычно получаются из Database и не предназначены для непосредственного создания в коде приложения. |
Методы расширения
GetCosmosClient(DatabaseFacade) |
Возвращает базовый CosmosClient объект для данного DbContextобъекта . |
GetCosmosDatabaseId(DatabaseFacade) |
Возвращает имя настроенной базы данных для данного DbContextобъекта . |
IsCosmos(DatabaseFacade) |
Возвращает значение |
GetInfrastructure<T>(IInfrastructure<T>) |
Получает значение из свойства, скрытого с помощью IInfrastructure<T>. Этот метод обычно используется поставщиками баз данных (и другими расширениями). Обычно он не используется в коде приложения. |
IsInMemory(DatabaseFacade) |
Возвращает значение |
BeginTransaction(DatabaseFacade, IsolationLevel) |
Запускает новую транзакцию с заданным IsolationLevel. |
BeginTransactionAsync(DatabaseFacade, IsolationLevel, CancellationToken) |
Асинхронно запускает новую транзакцию с заданным IsolationLevel. |
CloseConnection(DatabaseFacade) |
Закрывает базовый DbConnectionобъект . |
CloseConnectionAsync(DatabaseFacade) |
Закрывает базовый DbConnectionобъект . |
ExecuteSql(DatabaseFacade, FormattableString) |
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. |
ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken) |
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. |
ExecuteSqlCommand(DatabaseFacade, RawSqlString, IEnumerable<Object>) |
Устаревшие..
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. Обратите внимание, что этот метод не запускает транзакцию. Чтобы использовать этот метод с транзакцией, сначала вызовите BeginTransaction(DatabaseFacade, IsolationLevel) или UseTransaction(DatabaseFacade, DbTransaction). Обратите внимание, что текущий ExecutionStrategy объект не используется этим методом, так как SQL может не быть идемпотентным и не выполняется в транзакции. ExecutionStrategy можно использовать явным образом, убедившись, что также используется транзакция, если SQL не является идемпотентным. Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все значения параметров, которые вы указали, будут автоматически преобразованы в DbParameter. Вы также можете использовать ExecuteSqlInterpolated для использования синтаксиса интерполированной строки для создания параметров. |
ExecuteSqlCommand(DatabaseFacade, RawSqlString, Object[]) |
Устаревшие..
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. Обратите внимание, что этот метод не запускает транзакцию. Чтобы использовать этот метод с транзакцией, сначала вызовите BeginTransaction(DatabaseFacade, IsolationLevel) или UseTransaction(DatabaseFacade, DbTransaction). Обратите внимание, что текущий ExecutionStrategy объект не используется этим методом, так как SQL может не быть идемпотентным и не выполняется в транзакции. ExecutionStrategy можно использовать явным образом, убедившись, что также используется транзакция, если SQL не является идемпотентным.
Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все значения параметров, которые вы указываете, будут автоматически преобразованы в DbParameter — |
ExecuteSqlCommand(DatabaseFacade, FormattableString) |
Устаревшие..
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. Обратите внимание, что этот метод не запускает транзакцию. Чтобы использовать этот метод с транзакцией, сначала вызовите BeginTransaction(DatabaseFacade, IsolationLevel) или UseTransaction(DatabaseFacade, DbTransaction). Обратите внимание, что текущий ExecutionStrategy объект не используется этим методом, так как SQL может не быть идемпотентным и не выполняется в транзакции. ExecutionStrategy можно использовать явным образом, убедившись, что также используется транзакция, если SQL не является идемпотентным.
Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все значения параметров, которые вы указываете, будут автоматически преобразованы в DbParameter — |
ExecuteSqlCommand(DatabaseFacade, String, Object[]) |
Предоставляет доступ к связанной с базой данных информации и операциям для контекста. Экземпляры этого класса обычно получаются из Database и не предназначены для непосредственного создания в коде приложения. |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, IEnumerable<Object>, CancellationToken) |
Устаревшие..
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. Обратите внимание, что этот метод не запускает транзакцию. Чтобы использовать этот метод с транзакцией, сначала вызовите BeginTransaction(DatabaseFacade, IsolationLevel) или UseTransaction(DatabaseFacade, DbTransaction). Обратите внимание, что текущий ExecutionStrategy объект не используется этим методом, так как SQL может не быть идемпотентным и не выполняется в транзакции. ExecutionStrategy можно использовать явным образом, убедившись, что также используется транзакция, если SQL не является идемпотентным. Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все значения параметров, которые вы указали, будут автоматически преобразованы в DbParameter. Вы также можете использовать ExecuteSqlInterpolated для использования синтаксиса интерполированной строки для создания параметров. |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, Object[]) |
Устаревшие..
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. Обратите внимание, что этот метод не запускает транзакцию. Чтобы использовать этот метод с транзакцией, сначала вызовите BeginTransaction(DatabaseFacade, IsolationLevel) или UseTransaction(DatabaseFacade, DbTransaction). Обратите внимание, что текущий ExecutionStrategy объект не используется этим методом, так как SQL может не быть идемпотентным и не выполняется в транзакции. ExecutionStrategy можно использовать явным образом, убедившись, что также используется транзакция, если SQL не является идемпотентным.
Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все значения параметров, которые вы указываете, будут автоматически преобразованы в DbParameter — |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, CancellationToken) |
Устаревшие..
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. Обратите внимание, что этот метод не запускает транзакцию. Чтобы использовать этот метод с транзакцией, сначала вызовите BeginTransaction(DatabaseFacade, IsolationLevel) или UseTransaction(DatabaseFacade, DbTransaction). Обратите внимание, что текущий ExecutionStrategy объект не используется этим методом, так как SQL не может быть идемпотентным и не выполняется в транзакции. ExecutionStrategy можно использовать явным образом, чтобы также использовать транзакцию, если SQL не является идемпотентным.
Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter — |
ExecuteSqlCommandAsync(DatabaseFacade, FormattableString, CancellationToken) |
Устаревшие..
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. Обратите внимание, что этот метод не запускает транзакцию. Чтобы использовать этот метод с транзакцией, сначала вызовите BeginTransaction(DatabaseFacade, IsolationLevel) или UseTransaction(DatabaseFacade, DbTransaction). Обратите внимание, что текущий ExecutionStrategy объект не используется этим методом, так как SQL не может быть идемпотентным и не выполняется в транзакции. ExecutionStrategy можно использовать явным образом, чтобы также использовать транзакцию, если SQL не является идемпотентным.
Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter — |
ExecuteSqlCommandAsync(DatabaseFacade, String, CancellationToken, Object[]) |
Предоставляет доступ к связанной с базой данных информации и операциям для контекста. Экземпляры этого класса обычно получаются из Database и не предназначены для непосредственного создания в коде приложения. |
ExecuteSqlInterpolated(DatabaseFacade, FormattableString) |
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. |
ExecuteSqlInterpolatedAsync(DatabaseFacade, FormattableString, CancellationToken) |
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. |
ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>) |
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. |
ExecuteSqlRaw(DatabaseFacade, String, Object[]) |
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. |
ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken) |
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. |
ExecuteSqlRawAsync(DatabaseFacade, String, Object[]) |
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. |
ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken) |
Выполняет заданный SQL для базы данных и возвращает количество затронутых строк. |
GenerateCreateScript(DatabaseFacade) |
Создает скрипт для создания всех таблиц для текущей модели. |
GetAppliedMigrations(DatabaseFacade) |
Возвращает все миграции, примененные к целевой базе данных. |
GetAppliedMigrationsAsync(DatabaseFacade, CancellationToken) |
Асинхронно получает все миграции, примененные к целевой базе данных. |
GetCommandTimeout(DatabaseFacade) |
Возвращает время ожидания (в секундах) для команд, выполняемых с помощью этой DbContextфункции . |
GetConnectionString(DatabaseFacade) |
Возвращает базовый строка подключения, настроенный для данного объекта DbContext. |
GetDbConnection(DatabaseFacade) |
Возвращает базовый ADO.NET DbConnection для данного DbContextобъекта . |
GetMigrations(DatabaseFacade) |
Возвращает все миграции, определенные в настроенной сборке миграций. |
GetPendingMigrations(DatabaseFacade) |
Возвращает все миграции, определенные в сборке, но не примененные к целевой базе данных. |
GetPendingMigrationsAsync(DatabaseFacade, CancellationToken) |
Асинхронно получает все миграции, определенные в сборке, но не примененные к целевой базе данных. |
HasPendingModelChanges(DatabaseFacade) |
Возвращает значение |
IsRelational(DatabaseFacade) |
Возвращает значение |
Migrate(DatabaseFacade) |
Применяет все ожидающие миграции для контекста к базе данных. Создаст базу данных, если она еще не существует. |
MigrateAsync(DatabaseFacade, CancellationToken) |
Асинхронно применяет все ожидающие миграции для контекста к базе данных. Создаст базу данных, если она еще не существует. |
OpenConnection(DatabaseFacade) |
Открывает базовый DbConnectionобъект . |
OpenConnectionAsync(DatabaseFacade, CancellationToken) |
Открывает базовый DbConnectionобъект . |
SetCommandTimeout(DatabaseFacade, Nullable<Int32>) |
Задает время ожидания (в секундах), используемое для команд, выполняемых с помощью этой DbContextкоманды . |
SetCommandTimeout(DatabaseFacade, TimeSpan) |
Задает время ожидания, используемое для команд, выполняемых с помощью этого DbContext. |
SetConnectionString(DatabaseFacade, String) |
Задает базовый строка подключения, настроенный для этого DbContext. |
SetDbConnection(DatabaseFacade, DbConnection, Boolean) |
Задает базовый ADO.NET DbConnection для данного объекта DbContext. |
SetDbConnection(DatabaseFacade, DbConnection) |
Задает базовый ADO.NET DbConnection для данного объекта DbContext. |
SqlQuery<TResult>(DatabaseFacade, FormattableString) |
Создает запрос LINQ на основе необработанного SQL-запроса, который возвращает результирующий набор скалярного типа, который изначально поддерживается поставщиком базы данных. |
SqlQueryRaw<TResult>(DatabaseFacade, String, Object[]) |
Создает запрос LINQ на основе необработанного SQL-запроса, который возвращает результирующий набор скалярного типа, который изначально поддерживается поставщиком базы данных. |
UseTransaction(DatabaseFacade, DbTransaction, Guid) |
Задает объект , используемый DbTransaction операциями базы данных в DbContext. |
UseTransaction(DatabaseFacade, DbTransaction) |
Задает объект , используемый DbTransaction операциями базы данных в DbContext. |
UseTransactionAsync(DatabaseFacade, DbTransaction, Guid, CancellationToken) |
Задает объект , используемый DbTransaction операциями базы данных в DbContext. |
UseTransactionAsync(DatabaseFacade, DbTransaction, CancellationToken) |
Задает объект , используемый DbTransaction операциями базы данных в DbContext. |
IsSqlite(DatabaseFacade) |
Возвращает значение |
IsSqlServer(DatabaseFacade) |
Возвращает значение |
EnlistTransaction(DatabaseFacade, Transaction) |
Указывает существующий Transaction объект , используемый для операций с базой данных. |
GetEnlistedTransaction(DatabaseFacade) |
Возвращает текущую зачисленную транзакцию. |
Применяется к
Entity Framework