Compartilhar via


Database Classe

Definição

Uma instância dessa classe é obtida de um DbContext objeto e pode ser usada para gerenciar o banco de dados real que dá suporte a um DbContext ou conexão. Isso inclui criar, excluir e verificar a existência de um banco de dados. Observe que a exclusão e a verificação da existência de um banco de dados podem ser executadas usando apenas uma conexão (ou seja, sem um contexto completo) usando os métodos estáticos dessa classe.

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
Herança
Database
Atributos

Propriedades

CommandTimeout

Obtém ou define o valor de tempo limite, em segundos, para todas as operações de contexto. O valor padrão é nulo, em que nulo indica que o valor padrão do provedor subjacente será usado.

Connection

Retorna a conexão que está sendo usada por esse contexto. Isso poderá fazer com que a conexão seja criada se ela ainda não existir.

CurrentTransaction

Obtém a transação na qual a conexão do repositório subjacente está inscrita. Pode ser nulo.

DefaultConnectionFactory
Obsoleto.

A fábrica de conexões a ser usada ao criar um DbConnection de apenas um nome de banco de dados ou uma cadeia de conexão.

Log

Defina essa propriedade para registrar o SQL gerado pelo DbContext para o delegado especificado. Por exemplo, para fazer logon no console, defina essa propriedade como Write(String).

Métodos

BeginTransaction()

Inicia uma transação na conexão do repositório subjacente

BeginTransaction(IsolationLevel)

Inicia uma transação na conexão do repositório subjacente usando o nível de isolamento especificado

CompatibleWithModel(Boolean)

Verifica se o banco de dados é ou não compatível com o modelo code first atual.

Create()

Cria um novo banco de dados no servidor de banco de dados para o modelo definido no contexto de suporte. Observe que chamar esse método antes da execução da estratégia de inicialização do banco de dados desabilitará a execução dessa estratégia.

CreateIfNotExists()

Cria um novo banco de dados no servidor de banco de dados para o modelo definido no contexto de suporte, mas somente se um banco de dados com o mesmo nome ainda não existir no servidor.

Delete()

Exclui o banco de dados no servidor de banco de dados se ele existir; caso contrário, não faz nada. Chamar esse método de fora de um inicializador marcará o banco de dados como não tendo sido inicializado. Isso significa que, se for feita uma tentativa de usar o banco de dados novamente depois que ele tiver sido excluído, qualquer conjunto de inicializadores será executado novamente e, geralmente, tentará criar o banco de dados novamente automaticamente.

Delete(DbConnection)

Exclui o banco de dados no servidor de banco de dados se ele existir; caso contrário, não faz nada.

Delete(String)

Exclui o banco de dados no servidor de banco de dados se ele existir; caso contrário, não faz nada. A conexão com o banco de dados é criada usando o nome do banco de dados fornecido ou a cadeia de conexão da mesma forma que é descrito na documentação da DbContext classe .

Equals(Object)

Uma instância dessa classe é obtida de um DbContext objeto e pode ser usada para gerenciar o banco de dados real que dá suporte a um DbContext ou conexão. Isso inclui criar, excluir e verificar a existência de um banco de dados. Observe que a exclusão e a verificação da existência de um banco de dados podem ser executadas usando apenas uma conexão (ou seja, sem um contexto completo) usando os métodos estáticos dessa classe.

ExecuteSqlCommand(String, Object[])

Executa o comando DDL/DML especificado no banco de dados.

Assim como acontece com qualquer API que aceite o SQL, é importante parametrizar qualquer entrada do usuário para proteger contra um ataque de injeção de SQL. Você pode incluir os espaços reservados para parâmetros na cadeia de caracteres de consulta SQL e, em seguida, fornecer valores de parâmetro como argumentos adicionais. Todos os valores de parâmetro fornecidos serão convertidos automaticamente em um DbParameter. Contexto. Database.ExecuteSqlCommand("UPDATE dbo. Postagens SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Como alternativa, você também pode construir um DbParameter e fornecê-lo ao SqlQuery. Isso permite usar parâmetros nomeados na cadeia de caracteres de consulta SQL. Contexto. Database.ExecuteSqlCommand("UPDATE dbo. Postagens SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommand(TransactionalBehavior, String, Object[])

Executa o comando DDL/DML especificado no banco de dados.

Assim como acontece com qualquer API que aceite o SQL, é importante parametrizar qualquer entrada do usuário para proteger contra um ataque de injeção de SQL. Você pode incluir os espaços reservados para parâmetros na cadeia de caracteres de consulta SQL e, em seguida, fornecer valores de parâmetro como argumentos adicionais. Todos os valores de parâmetro fornecidos serão convertidos automaticamente em um DbParameter. Contexto. Database.ExecuteSqlCommand("UPDATE dbo. Postagens SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Como alternativa, você também pode construir um DbParameter e fornecê-lo ao SqlQuery. Isso permite usar parâmetros nomeados na cadeia de caracteres de consulta SQL. Contexto. Database.ExecuteSqlCommand("UPDATE dbo. Postagens SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, CancellationToken, Object[])

Executa de forma assíncrona o comando DDL/DML especificado no banco de dados.

Assim como acontece com qualquer API que aceite o SQL, é importante parametrizar qualquer entrada do usuário para proteger contra um ataque de injeção de SQL. Você pode incluir os espaços reservados para parâmetros na cadeia de caracteres de consulta SQL e, em seguida, fornecer valores de parâmetro como argumentos adicionais. Todos os valores de parâmetro fornecidos serão convertidos automaticamente em um DbParameter. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Postagens SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Como alternativa, você também pode construir um DbParameter e fornecê-lo ao SqlQuery. Isso permite usar parâmetros nomeados na cadeia de caracteres de consulta SQL. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Postagens SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, Object[])

Executa de forma assíncrona o comando DDL/DML especificado no banco de dados.

Assim como acontece com qualquer API que aceite o SQL, é importante parametrizar qualquer entrada do usuário para proteger contra um ataque de injeção de SQL. Você pode incluir os espaços reservados para parâmetros na cadeia de caracteres de consulta SQL e, em seguida, fornecer valores de parâmetro como argumentos adicionais. Todos os valores de parâmetro fornecidos serão convertidos automaticamente em um DbParameter. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Postagens SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Como alternativa, você também pode construir um DbParameter e fornecê-lo ao SqlQuery. Isso permite usar parâmetros nomeados na cadeia de caracteres de consulta SQL. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Postagens SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

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

Executa de forma assíncrona o comando DDL/DML especificado no banco de dados.

Assim como acontece com qualquer API que aceite o SQL, é importante parametrizar qualquer entrada do usuário para proteger contra um ataque de injeção de SQL. Você pode incluir os espaços reservados para parâmetros na cadeia de caracteres de consulta SQL e, em seguida, fornecer valores de parâmetro como argumentos adicionais. Todos os valores de parâmetro fornecidos serão convertidos automaticamente em um DbParameter. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Postagens SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Como alternativa, você também pode construir um DbParameter e fornecê-lo ao SqlQuery. Isso permite usar parâmetros nomeados na cadeia de caracteres de consulta SQL. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Postagens SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[])

Executa de forma assíncrona o comando DDL/DML especificado no banco de dados.

Assim como acontece com qualquer API que aceite o SQL, é importante parametrizar qualquer entrada do usuário para proteger contra um ataque de injeção de SQL. Você pode incluir os espaços reservados para parâmetros na cadeia de caracteres de consulta SQL e, em seguida, fornecer valores de parâmetro como argumentos adicionais. Todos os valores de parâmetro fornecidos serão convertidos automaticamente em um DbParameter. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Postagens SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Como alternativa, você também pode construir um DbParameter e fornecê-lo ao SqlQuery. Isso permite usar parâmetros nomeados na cadeia de caracteres de consulta SQL. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Postagens SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

Exists()

Verifica se o banco de dados existe ou não no servidor.

Exists(DbConnection)

Verifica se o banco de dados existe ou não no servidor.

Exists(String)

Verifica se o banco de dados existe ou não no servidor. A conexão com o banco de dados é criada usando o nome do banco de dados fornecido ou a cadeia de conexão da mesma forma que é descrito na documentação da DbContext classe .

GetHashCode()

Uma instância dessa classe é obtida de um DbContext objeto e pode ser usada para gerenciar o banco de dados real que dá suporte a um DbContext ou conexão. Isso inclui criar, excluir e verificar a existência de um banco de dados. Observe que a exclusão e a verificação da existência de um banco de dados podem ser executadas usando apenas uma conexão (ou seja, sem um contexto completo) usando os métodos estáticos dessa classe.

GetType()

Obtém o Type da instância atual.

Initialize(Boolean)

Executa o registrado IDatabaseInitializer<TContext> neste contexto. Se "force" for definido como true, o inicializador será executado independentemente de ele ter sido executado ou não antes. Isso poderá ser útil se um banco de dados for excluído enquanto um aplicativo estiver em execução e precisar ser reinicializado. Se "force" for definido como false, o inicializador só será executado se ainda não tiver sido executado para esse contexto, modelo e conexão neste domínio de aplicativo. Esse método normalmente é usado quando é necessário garantir que o banco de dados tenha sido criado e propagado antes de iniciar alguma operação em que fazer isso lentamente causará problemas, como quando a operação faz parte de uma transação.

SetInitializer<TContext>(IDatabaseInitializer<TContext>)

Define o inicializador de banco de dados a ser usado para o tipo de contexto fornecido. O inicializador de banco de dados é chamado quando um determinado DbContext tipo é usado para acessar um banco de dados pela primeira vez. A estratégia padrão para contextos do Code First é uma instância do CreateDatabaseIfNotExists<TContext>.

SqlQuery(Type, String, Object[])

Cria uma consulta SQL bruta que retornará elementos do tipo fornecido. O tipo pode ser qualquer tipo que tenha propriedades que correspondam aos nomes das colunas retornadas da consulta ou pode ser um tipo primitivo simples. O tipo não precisa ser um tipo de entidade. Os resultados dessa consulta nunca são rastreados pelo contexto, mesmo que o tipo de objeto retornado seja um tipo de entidade. Use o SqlQuery(String, Object[]) método para retornar entidades controladas pelo contexto.

SqlQuery<TElement>(String, Object[])

Cria uma consulta SQL bruta que retornará elementos do tipo genérico fornecido. O tipo pode ser qualquer tipo que tenha propriedades que correspondam aos nomes das colunas retornadas da consulta ou pode ser um tipo primitivo simples. O tipo não precisa ser um tipo de entidade. Os resultados dessa consulta nunca são rastreados pelo contexto, mesmo que o tipo de objeto retornado seja um tipo de entidade. Use o SqlQuery(String, Object[]) método para retornar entidades controladas pelo contexto.

ToString()

Uma instância dessa classe é obtida de um DbContext objeto e pode ser usada para gerenciar o banco de dados real que dá suporte a um DbContext ou conexão. Isso inclui criar, excluir e verificar a existência de um banco de dados. Observe que a exclusão e a verificação da existência de um banco de dados podem ser executadas usando apenas uma conexão (ou seja, sem um contexto completo) usando os métodos estáticos dessa classe.

UseTransaction(DbTransaction)

Permite que o usuário passe uma transação de banco de dados criada fora do Database objeto se você quiser que o Entity Framework execute comandos dentro dessa transação externa. Como alternativa, passe nulo para limpar o conhecimento da estrutura sobre essa transação.

Aplica-se a