Язык

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, чтобы очистить знания платформы об этой транзакции.

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