Поделиться через


Database Класс

Определение

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

public class Database
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification="The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public class Database
type Database = class
Public Class Database
Наследование
Database
Атрибуты

Свойства

CommandTimeout

Возвращает или задает значение времени ожидания (в секундах) для всех контекстных операций. Значение по умолчанию — null, где null указывает, что будет использоваться значение по умолчанию базового поставщика.

Connection

Возвращает соединение, используемое данным контекстом. Это может привести к созданию подключения, если оно еще не существует.

CurrentTransaction

Возвращает транзакцию, в который включено базовое подключение к хранилищу. Может принимать значение NULL.

DefaultConnectionFactory
Устаревшие..

Фабрика соединений, используемая DbConnection при создании из имени базы данных или строки подключения.

Log

Присвойте этому свойству запись SQL, созданного классом , DbContext в заданном делегате. Например, чтобы войти в консоль, присвойте этому свойству значение Write(String).

Методы

BeginTransaction()

Начинает транзакцию в базовом подключении к хранилищу

BeginTransaction(IsolationLevel)

Начинает транзакцию в базовом подключении к хранилищу с использованием указанного уровня изоляции

CompatibleWithModel(Boolean)

Проверяет, совместима ли база данных с текущей моделью Code First.

Create()

Создает новую базу данных на сервере базы данных для модели, определенной в поддерживающем контексте. Учтите, что вызов этого метода до выполнения стратегии инициализации базы данных не позволит в дальнейшем выполнить эту стратегию.

CreateIfNotExists()

Создает новую базу данных на сервере базы данных для модели, определенной в поддерживающем контексте, но только если на сервере пока не имеется базы данных с тем же именем.

Delete()

Удаляет базу данных с сервера базы данных, если она существует. В противном случае не делает ничего. Вызов этого метода извне инициализатора помечает базу данных как не инициализированную. Это означает, что при попытке повторного использования базы данных после удаления любой набор инициализаторов будет снова запущен и, как правило, будет пытаться создать базу данных снова автоматически.

Delete(DbConnection)

Удаляет базу данных с сервера базы данных, если она существует. В противном случае не делает ничего.

Delete(String)

Удаляет базу данных с сервера базы данных, если она существует. В противном случае не делает ничего. Подключение к базе данных создается с использованием заданного имени базы данных или строки подключения так же, как описано в документации по классу DbContext .

Equals(Object)

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

ExecuteSqlCommand(String, Object[])

Выполняет указанную команду DDL/DML применительно к базе данных.

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter. Контексте. Database.ExecuteSqlCommand("UPDATE dbo. Записи SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и передать его в SqlQuery. Это позволяет использовать именованные параметры в строке SQL-запроса. Контексте. Database.ExecuteSqlCommand("UPDATE dbo. Записи SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommand(TransactionalBehavior, String, Object[])

Выполняет указанную команду DDL/DML применительно к базе данных.

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter. Контексте. Database.ExecuteSqlCommand("UPDATE dbo. Записи SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и передать его в SqlQuery. Это позволяет использовать именованные параметры в строке SQL-запроса. Контексте. Database.ExecuteSqlCommand("UPDATE dbo. Записи SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, CancellationToken, Object[])

Асинхронно выполняет указанную команду DDL/DML для базы данных.

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter. Контексте. Database.ExecuteSqlCommandAsync("UPDATE dbo. Записи SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и передать его в SqlQuery. Это позволяет использовать именованные параметры в строке SQL-запроса. Контексте. Database.ExecuteSqlCommandAsync("UPDATE dbo. Записи SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, Object[])

Асинхронно выполняет указанную команду DDL/DML для базы данных.

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter. Контексте. Database.ExecuteSqlCommandAsync("UPDATE dbo. Записи SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и передать его в SqlQuery. Это позволяет использовать именованные параметры в строке SQL-запроса. Контексте. Database.ExecuteSqlCommandAsync("UPDATE dbo. Записи SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

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

Асинхронно выполняет указанную команду DDL/DML для базы данных.

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter. Контексте. Database.ExecuteSqlCommandAsync("UPDATE dbo. Записи SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и передать его в SqlQuery. Это позволяет использовать именованные параметры в строке SQL-запроса. Контексте. Database.ExecuteSqlCommandAsync("UPDATE dbo. Записи SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[])

Асинхронно выполняет указанную команду DDL/DML для базы данных.

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter. Контексте. Database.ExecuteSqlCommandAsync("UPDATE dbo. Записи SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и передать его в SqlQuery. Это позволяет использовать именованные параметры в строке SQL-запроса. Контексте. Database.ExecuteSqlCommandAsync("UPDATE dbo. Записи SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

Exists()

Проверяет, существует ли на сервере база данных.

Exists(DbConnection)

Проверяет, существует ли на сервере база данных.

Exists(String)

Проверяет, существует ли на сервере база данных. Подключение к базе данных создается с использованием заданного имени базы данных или строки подключения так же, как описано в документации по классу DbContext .

GetHashCode()

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

GetType()

Возвращает объект Type для текущего экземпляра.

Initialize(Boolean)

Запускает объект , зарегистрированный IDatabaseInitializer<TContext> в этом контексте. Если для параметра force задано значение true, инициализатор запускается независимо от того, был ли он запущен ранее. Это может оказаться полезным, если база данных была удалена во время выполнения приложения и должна быть повторно инициализирована. Если для параметра force задано значение false, инициализатор запускается только в том случае, если он еще не был запущен для этого контекста, модели и соединения в этом домене приложения. Этот метод обычно используется, когда необходимо убедиться, что база данных была создана и заполняется перед началом какой-либо операции, когда это отложенно приведет к проблемам, например, когда операция является частью транзакции.

SetInitializer<TContext>(IDatabaseInitializer<TContext>)

Задает инициализатор базы данных, используемый для заданного типа контекста. Инициализатор базы данных вызывается, когда данный DbContext тип используется для первого доступа к базе данных. Стратегия по умолчанию для контекстов Code First — это экземпляр CreateDatabaseIfNotExists<TContext>.

SqlQuery(Type, String, Object[])

Создает необработанный SQL-запрос, возвращающий элементы заданного типа. Типом может быть любой тип, содержащий свойства, совпадающие с именами столбцов, возвращаемых запросом, либо простой тип-примитив. Тип не обязательно должен быть типом сущности. Результаты этого запроса никогда не отслеживаются контекстом, даже если возвращаемый объект имеет тип сущности. Используйте метод для SqlQuery(String, Object[]) возврата сущностей, отслеживаемых контекстом.

SqlQuery<TElement>(String, Object[])

Создает необработанный SQL-запрос, возвращающий элементы заданного универсального типа. Типом может быть любой тип, содержащий свойства, совпадающие с именами столбцов, возвращаемых запросом, либо простой тип-примитив. Тип не обязательно должен быть типом сущности. Результаты этого запроса никогда не отслеживаются контекстом, даже если возвращаемый объект имеет тип сущности. Используйте метод для SqlQuery(String, Object[]) возврата сущностей, отслеживаемых контекстом.

ToString()

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

UseTransaction(DbTransaction)

Позволяет пользователю передавать транзакцию базы данных, созданную за пределами Database объекта , если требуется, чтобы Entity Framework выполняла команды в этой внешней транзакции. Кроме того, передайте значение NULL, чтобы очистить знания платформы об этой транзакции.

Применяется к