Database - класс

[Эта страница относится к документации к Entity Framework 6. Последняя версия доступна в составе пакета Entity Framework NuGet. Дополнительные сведения об Entity Framework см. в разделе msdn.com/data/ef.]

Экземпляр этого класса получается из объекта DbContext и может быть использован для управления фактической базой данных, поддерживающей объект DbContext или соединение. В частности, поддерживается создание, удаление и проверка наличия базы данных. Обратите внимание, что удаление и проверку существования базы данных можно выполнять с помощью одного соединения (т. е. без полного контекста) посредством статических методов этого класса.

Иерархия наследования

System.Object
  System.Data.Entity.Database

Пространство имен:  System.Data.Entity
Сборка:  EntityFramework (в EntityFramework.dll)

Синтаксис

'Декларация
<SuppressMessageAttribute("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification := "The DbContextTransaction and EntityTransaction should never be disposed by this class")> _
Public Class Database
'Применение
Dim instance As Database
[SuppressMessageAttribute("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification = "The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public class Database
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification = L"The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public ref class Database
[<SuppressMessageAttribute("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification = "The DbContextTransaction and EntityTransaction should never be disposed by this class")>]
type Database =  class end
public class Database

Тип Database предоставляет следующие члены.

Свойства

  Имя Описание
Открытое свойство CommandTimeout Возвращает или задает значение времени ожидания (в секундах) для всех операций контекста.Заданное по умолчанию значение NULL указывает, что будет использоваться значение по умолчанию базового поставщика.
Открытое свойство Connection Возвращает соединение, используемое данным контекстом.Это может привести к созданию соединения, если оно еще не установлено.
Открытое свойство CurrentTransaction Возвращает транзакцию, в которой указано основное подключение к хранилищу.Может иметь значение null.
Открытое свойствоСтатический член DefaultConnectionFactory Устаревшее. Фабрика соединений, используемая при создании объекта DbConnection из имени базы данных или строки подключения.
Открытое свойство Log Задайте это свойство для регистрации SQL, созданного DbContext для заданного делегата.Например, чтобы войти на консоль, задайте для этого свойства значение Write(String).

По верхнему краю

Методы

  Имя Описание
Открытый метод BeginTransaction() Запускает транзакцию в основном подключении хранилища
Открытый метод BeginTransaction(IsolationLevel) Запускает транзакцию в основном подключении хранилища, используя указанный уровень изоляции
Открытый метод CompatibleWithModel Проверяет, совместима ли база данных с текущей моделью Code First.
Открытый метод Create Создает новую базу данных на сервере базы данных для модели, определенной в поддерживающем контексте.Учтите, что вызов этого метода до выполнения стратегии инициализации базы данных не позволит в дальнейшем выполнить эту стратегию.
Открытый метод CreateIfNotExists Создает новую базу данных на сервере базы данных для модели, определенной в поддерживающем контексте, но только если на сервере пока не имеется базы данных с тем же именем.
Открытый метод Delete() Удаляет базу данных с сервера базы данных, если она существует. В противном случае не делает ничего.Вызов этого метода вне инициализатора помечает базу данных как неинициализированную.Это означает, что при повторной попытке использования базы данных после ее удаления любой установленный инициализатор запустится снова и, скорее всего, попытается снова автоматически создать базу данных.
Открытый методСтатический член Delete(DbConnection) Удаляет базу данных с сервера базы данных, если она существует. В противном случае не делает ничего.
Открытый методСтатический член Delete(String) Удаляет базу данных с сервера базы данных, если она существует. В противном случае не делает ничего.Соединение с базой данных создается при помощи имени базы данных или строки подключения способом, описанным в документации по классу DbContext.
Открытый метод Equals Определяет, равна ли заданная база данных текущей. (Переопределяет Object.Equals(Object).)
Открытый метод ExecuteSqlCommand(String, Object[]) Выполняет указанную команду DDL/DML применительно к базе данных.Как и для любого API, принимающего SQL, важно параметризовать все пользовательские входные данные для защиты от атаки путем внедрения кода SQL.Можно включать в строку SQL-запроса местозаполнители параметров и затем предоставлять значения параметров как дополнительные аргументы.Все предоставляемые значения параметров будут автоматически преобразовываться в DbParameter.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); также можно создать DbParameter и предоставить его в SqlQuery.Это позволяет использовать в строке запроса SQL именованные параметры.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Открытый метод ExecuteSqlCommand(TransactionalBehavior, String, Object[]) Выполняет указанную команду DDL/DML применительно к базе данных.Как и для любого API, принимающего SQL, важно параметризовать все пользовательские входные данные для защиты от атаки путем внедрения кода SQL.Можно включать в строку SQL-запроса местозаполнители параметров и затем предоставлять значения параметров как дополнительные аргументы.Все предоставляемые значения параметров будут автоматически преобразовываться в DbParameter.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); также можно создать DbParameter и предоставить его в SqlQuery.Это позволяет использовать в строке запроса SQL именованные параметры.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Открытый метод ExecuteSqlCommandAsync(String, Object[]) Асинхронно выполняет указанную команду DDL/DML применительно к базе данных.Как и для любого API, принимающего SQL, важно параметризовать все пользовательские входные данные для защиты от атаки путем внедрения кода SQL.Можно включать в строку SQL-запроса местозаполнители параметров и затем предоставлять значения параметров как дополнительные аргументы.Все предоставляемые значения параметров будут автоматически преобразовываться в DbParameter.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); также можно создать DbParameter и предоставить его в SqlQuery.Это позволяет использовать в строке запроса SQL именованные параметры.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Открытый метод ExecuteSqlCommandAsync(String, CancellationToken, Object[]) Асинхронно выполняет указанную команду DDL/DML применительно к базе данных.Как и для любого API, принимающего SQL, важно параметризовать все пользовательские входные данные для защиты от атаки путем внедрения кода SQL.Можно включать в строку SQL-запроса местозаполнители параметров и затем предоставлять значения параметров как дополнительные аргументы.Все предоставляемые значения параметров будут автоматически преобразовываться в DbParameter.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); также можно создать DbParameter и предоставить его в SqlQuery.Это позволяет использовать в строке запроса SQL именованные параметры.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Открытый метод ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[]) Асинхронно выполняет указанную команду DDL/DML применительно к базе данных.Как и для любого API, принимающего SQL, важно параметризовать все пользовательские входные данные для защиты от атаки путем внедрения кода SQL.Можно включать в строку SQL-запроса местозаполнители параметров и затем предоставлять значения параметров как дополнительные аргументы.Все предоставляемые значения параметров будут автоматически преобразовываться в DbParameter.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); также можно создать DbParameter и предоставить его в SqlQuery.Это позволяет использовать в строке запроса SQL именованные параметры.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Открытый метод ExecuteSqlCommandAsync(TransactionalBehavior, String, CancellationToken, Object[]) Асинхронно выполняет указанную команду DDL/DML применительно к базе данных.Как и для любого API, принимающего SQL, важно параметризовать все пользовательские входные данные для защиты от атаки путем внедрения кода SQL.Можно включать в строку SQL-запроса местозаполнители параметров и затем предоставлять значения параметров как дополнительные аргументы.Все предоставляемые значения параметров будут автоматически преобразовываться в DbParameter.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); также можно создать DbParameter и предоставить его в SqlQuery.Это позволяет использовать в строке запроса SQL именованные параметры.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Открытый метод Exists() Проверяет, существует ли на сервере база данных.
Открытый методСтатический член Exists(DbConnection) Проверяет, существует ли на сервере база данных.
Открытый методСтатический член Exists(String) Проверяет, существует ли на сервере база данных.Соединение с базой данных создается при помощи имени базы данных или строки подключения способом, описанным в документации по классу DbContext.
Защищенный метод Finalize (Унаследовано от Object.)
Открытый метод GetHashCode Возвращает хэш-функцию для этой базы данных. (Переопределяет Object.GetHashCode().)
Открытый метод GetType Возвращает объект Type для текущего экземпляра.
Открытый метод Initialize Запускает интерфейс IDatabaseInitializer<TContext>, зарегистрированный в данном контексте.Если параметр «force» имеет значение true, инициализатор запускается независимо от того, запускался ли он уже прежде.Это может оказаться полезным, если база данных была удалена во время выполнения приложения и должна быть повторно инициализирована.Если параметр «force» имеет значение false, инициализатор выполняется, только если не выполнялся ранее для этого контекста, модели и соединения в данном домене приложения.Этот метод обычно используется, если необходимо гарантировать создание базы данных и ее заполнение первоначальными данными до запуска определенной операции (при этом необходима быстрая реакция), например если операция является частью транзакции.
Защищенный метод MemberwiseClone (Унаследовано от Object.)
Открытый методСтатический член SetInitializer<TContext> Устанавливает инициализатор базы данных для данного типа контекста.Инициализатор базы данных вызывается, когда заданный тип DbContext используется для доступа к базе данных в первый раз.Стратегией по умолчанию для контекстов Code First является экземпляр CreateDatabaseIfNotExists<TContext>.
Открытый метод SqlQuery(Type, String, Object[]) Создает необработанный SQL-запрос, возвращающий элементы заданного типа.Типом может быть любой тип, содержащий свойства, совпадающие с именами столбцов, возвращаемых запросом, либо простой тип-примитив.Тип не обязательно должен быть типом сущности.Результаты этого запроса никогда не отслеживаются контекстом, даже если возвращаемый объект имеет тип сущности.Используйте метод SqlQuery(String, Object[]) для возврата сущностей, отслеживаемых контекстом.Как и для любого API, принимающего SQL, важно параметризовать все пользовательские входные данные для защиты от атаки путем внедрения кода SQL.Можно включать в строку SQL-запроса местозаполнители параметров и затем предоставлять значения параметров как дополнительные аргументы.Все предоставляемые значения параметров будут автоматически преобразовываться в DbParameter.context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); также можно создать DbParameter и предоставить его в SqlQuery.Это позволяет использовать в строке запроса SQL именованные параметры.context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Открытый метод SqlQuery<TElement>(String, Object[]) Создает необработанный SQL-запрос, возвращающий элементы заданного универсального типа.Типом может быть любой тип, содержащий свойства, совпадающие с именами столбцов, возвращаемых запросом, либо простой тип-примитив.Тип не обязательно должен быть типом сущности.Результаты этого запроса никогда не отслеживаются контекстом, даже если возвращаемый объект имеет тип сущности.Используйте метод SqlQuery(String, Object[]) для возврата сущностей, отслеживаемых контекстом.Как и для любого API, принимающего SQL, важно параметризовать все пользовательские входные данные для защиты от атаки путем внедрения кода SQL.Можно включать в строку SQL-запроса местозаполнители параметров и затем предоставлять значения параметров как дополнительные аргументы.Все предоставляемые значения параметров будут автоматически преобразовываться в DbParameter.context.Database.SqlQuery&amp;lt;Post&amp;gt;("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); также можно создать DbParameter и передать его в SqlQuery.Это позволяет использовать в строке запроса SQL именованные параметры.context.Database.SqlQuery&amp;lt;Post&amp;gt;("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Открытый метод ToString Возвращает строковое представление базы данных. (Переопределяет Object.ToString().)
Открытый метод UseTransaction Позволяет передавать в базу данных транзакции, созданные за пределами объекта Database, если необходимо выполнять команды Entity Framework в пределах этой внешней транзакции.Также можно передавать значения NULL для очистки набора знаний платформы .NET Framework этой транзакции.

По верхнему краю

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасная работа с членами экземпляров типа не гарантируется.

См. также

Справочник

System.Data.Entity - пространство имен