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". Post SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и предоставить его SqlQuery. Это позволяет использовать именованные параметры в строке запроса SQL. контекст. Database.ExecuteSqlCommand("UPDATE dbo". Post 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". Post SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и предоставить его SqlQuery. Это позволяет использовать именованные параметры в строке запроса SQL. контекст. Database.ExecuteSqlCommand("UPDATE dbo". Post 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". Post SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и предоставить его SqlQuery. Это позволяет использовать именованные параметры в строке запроса SQL. контекст. Database.ExecuteSqlCommandAsync("UPDATE dbo". Post SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); |
| ExecuteSqlCommandAsync(String, Object[]) |
Асинхронно выполняет указанную команду DDL/DML для базы данных. Как и в случае с любым API, принимающего SQL, важно параметризовать любые входные данные пользователя для защиты от атаки внедрения SQL. Можно включить держатели параметров в строку запроса SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров автоматически преобразуются в DbParameter. контекст. Database.ExecuteSqlCommandAsync("UPDATE dbo". Post SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и предоставить его SqlQuery. Это позволяет использовать именованные параметры в строке запроса SQL. контекст. Database.ExecuteSqlCommandAsync("UPDATE dbo". Post 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". Post SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и предоставить его SqlQuery. Это позволяет использовать именованные параметры в строке запроса SQL. контекст. Database.ExecuteSqlCommandAsync("UPDATE dbo". Post 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". Post SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и предоставить его SqlQuery. Это позволяет использовать именованные параметры в строке запроса SQL. контекст. Database.ExecuteSqlCommandAsync("UPDATE dbo". Post 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, чтобы очистить знания платформы об этой транзакции. |