Compartilhar via


DbContext Classe

Definição

Uma instância DbContext representa uma combinação dos padrões Unidade de Trabalho e Repositório, de modo que ela possa ser usada para consultar de um banco de dados e agrupar alterações que serão gravadas novamente no repositório como uma unidade. DbContext é conceitualmente semelhante a ObjectContext.

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Justification="Casing is intentional")]
public class DbContext : IDisposable, System.Data.Entity.Infrastructure.IObjectContextAdapter
public class DbContext : IDisposable, System.Data.Entity.Infrastructure.IObjectContextAdapter
type DbContext = class
    interface IDisposable
    interface IObjectContextAdapter
Public Class DbContext
Implements IDisposable, IObjectContextAdapter
Herança
DbContext
Derivado
Atributos
Implementações

Comentários

DbContext geralmente é usado com um tipo derivado que contém DbSet<TEntity> propriedades para as entidades raiz do modelo. Esses conjuntos são inicializados automaticamente quando a instância da classe derivada é criada. Esse comportamento pode ser modificado aplicando o SuppressDbSetInitializationAttribute atributo a toda a classe de contexto derivada ou a propriedades individuais na classe . O Modelo de Dados de Entidade que dá suporte ao contexto pode ser especificado de várias maneiras. Ao usar a abordagem Code First, as DbSet<TEntity> propriedades no contexto derivado são usadas para criar um modelo por convenção. O método OnModelCreating protegido pode ser substituído para ajustar esse modelo. Mais controle sobre o modelo usado para a abordagem Model First pode ser obtido criando um DbCompiledModel explicitamente de um DbModelBuilder e passando esse modelo para um dos construtores DbContext. Ao usar a abordagem Database First ou Model First, o Modelo de Dados de Entidade pode ser criado usando o Entity Designer (ou manualmente por meio da criação de um arquivo EDMX) e, em seguida, esse modelo pode ser especificado usando uma cadeia de conexão de entidade ou um EntityConnection objeto . A conexão com o banco de dados (incluindo o nome do banco de dados) pode ser especificada de várias maneiras. Se o construtor DbContext sem parâmetros for chamado de um contexto derivado, o nome do contexto derivado será usado para localizar uma cadeia de conexão no arquivo app.config ou web.config. Se nenhuma cadeia de conexão for encontrada, o nome será passado para o DefaultConnectionFactory registrado na Database classe . Em seguida, a fábrica de conexões usa o nome do contexto como o nome do banco de dados em uma cadeia de conexão padrão. (Essa cadeia de conexão padrão aponta para .\SQLEXPRESS no computador local, a menos que um DefaultConnectionFactory diferente esteja registrado.) Em vez de usar o nome de contexto derivado, o nome da conexão/banco de dados também pode ser especificado explicitamente passando o nome para um dos construtores DbContext que usa uma cadeia de caracteres. O nome também pode ser passado no formato "name=myname", caso em que o nome deve ser encontrado no arquivo de configuração ou uma exceção será gerada. Observe que a conexão encontrada no arquivo app.config ou web.config pode ser uma cadeia de conexão de banco de dados normal (não uma cadeia de conexão especial do Entity Framework) nesse caso, o DbContext usará o Code First. No entanto, se a conexão encontrada no arquivo de configuração for uma cadeia de conexão especial do Entity Framework, o DbContext usará Database/Model First e o modelo especificado na cadeia de conexão será usado. Um DbConnection existente ou explicitamente criado também pode ser usado em vez do nome do banco de dados/conexão. Um DbModelBuilderVersionAttribute pode ser aplicado a uma classe derivada de DbContext para definir a versão das convenções usadas pelo contexto ao criar um modelo. Se nenhum atributo for aplicado, a versão mais recente das convenções será usada.

Construtores

DbContext()

Constrói uma nova instância de contexto usando convenções para criar o nome do banco de dados ao qual uma conexão será feita. O nome por convenção é o nome completo (namespace + nome da classe) da classe de contexto derivada. Consulte os comentários de classe sobre como isso é usado para criar uma conexão.

DbContext(DbCompiledModel)

Constrói uma nova instância de contexto usando convenções para criar o nome do banco de dados ao qual uma conexão será feita e a inicializa do modelo fornecido. O nome por convenção é o nome completo (namespace + nome da classe) da classe de contexto derivada. Consulte os comentários de classe sobre como isso é usado para criar uma conexão.

DbContext(DbConnection, Boolean)

Constrói uma nova instância de contexto usando a conexão existente para se conectar a um banco de dados. A conexão não será descartada quando o contexto for descartado se contextOwnsConnection for false.

DbContext(DbConnection, DbCompiledModel, Boolean)

Constrói uma nova instância de contexto usando a conexão existente para se conectar a um banco de dados e a inicializa do modelo fornecido. A conexão não será descartada quando o contexto for descartado se contextOwnsConnection for false.

DbContext(ObjectContext, Boolean)

Constrói uma nova instância de contexto em torno de um ObjectContext existente.

DbContext(ObjectContext, Boolean)

Constrói uma nova instância de contexto em torno de um ObjectContext existente.

DbContext(String)

Constrói uma nova instância de contexto usando a cadeia de caracteres fornecida como o nome ou a cadeia de conexão para o banco de dados ao qual uma conexão será feita. Consulte os comentários de classe sobre como isso é usado para criar uma conexão.

DbContext(String, DbCompiledModel)

Constrói uma nova instância de contexto usando a cadeia de caracteres fornecida como o nome ou a cadeia de conexão para o banco de dados ao qual uma conexão será feita e a inicializa do modelo fornecido. Consulte os comentários de classe sobre como isso é usado para criar uma conexão.

Propriedades

ChangeTracker

Fornece acesso aos recursos do contexto que lidam com o controle de alterações de entidades.

Configuration

Fornece acesso às opções de configuração para o contexto.

Database

Cria uma instância de banco de dados para esse contexto que permite a criação/exclusão/verificações de existência para o banco de dados subjacente.

Métodos

Dispose()

Chama o método Dispose protegido.

Dispose(Boolean)

Descarta o contexto. O subjacente ObjectContext também será descartado se tiver sido criado por esse contexto ou a propriedade tiver sido passada para esse contexto quando esse contexto foi criado. A conexão com o banco de dados (DbConnection objeto) também será descartada se ele tiver sido criado por esse contexto ou a propriedade tiver sido passada para esse contexto quando esse contexto foi criado.

Entry(Object)

Obtém um DbEntityEntry objeto para a entidade fornecida que fornece acesso a informações sobre a entidade e a capacidade de executar ações na entidade.

Entry<TEntity>(TEntity)

Obtém um DbEntityEntry<TEntity> objeto para a entidade fornecida que fornece acesso a informações sobre a entidade e a capacidade de executar ações na entidade.

Equals(Object)

Uma instância DbContext representa uma combinação dos padrões Unidade de Trabalho e Repositório, de modo que ela possa ser usada para consultar de um banco de dados e agrupar alterações que serão gravadas novamente no repositório como uma unidade. DbContext é conceitualmente semelhante a ObjectContext.

GetHashCode()

Uma instância DbContext representa uma combinação dos padrões Unidade de Trabalho e Repositório, de modo que ela possa ser usada para consultar de um banco de dados e agrupar alterações que serão gravadas novamente no repositório como uma unidade. DbContext é conceitualmente semelhante a ObjectContext.

GetType()

Uma instância DbContext representa uma combinação dos padrões Unidade de Trabalho e Repositório, de modo que ela possa ser usada para consultar de um banco de dados e agrupar alterações que serão gravadas novamente no repositório como uma unidade. DbContext é conceitualmente semelhante a ObjectContext.

GetValidationErrors()

Valida entidades controladas e retorna uma Coleção de que contém resultados de DbEntityValidationResult validação.

OnModelCreating(DbModelBuilder)

Esse método é chamado quando o modelo para um contexto derivado foi inicializado, mas antes que o modelo tenha sido bloqueado e usado para inicializar o contexto. A implementação padrão desse método não faz nada, mas pode ser substituída em uma classe derivada de modo que o modelo possa ser configurado ainda mais antes de ser bloqueado.

SaveChanges()

Salva todas as alterações feitas nesse contexto no banco de dados subjacente.

SaveChangesAsync()

Salva de forma assíncrona todas as alterações feitas nesse contexto no banco de dados subjacente.

SaveChangesAsync(CancellationToken)

Salva de forma assíncrona todas as alterações feitas nesse contexto no banco de dados subjacente.

Set(Type)

Retorna uma instância não genérica DbSet para acesso a entidades do tipo especificado no contexto e no repositório subjacente.

Set<TEntity>()

Retorna uma DbSet<TEntity> instância para acesso a entidades do tipo especificado no contexto e no repositório subjacente.

ShouldValidateEntity(DbEntityEntry)

Ponto de extensão que permite que o usuário substitua o comportamento padrão de validar apenas entidades adicionadas e modificadas.

ToString()

Uma instância DbContext representa uma combinação dos padrões Unidade de Trabalho e Repositório, de modo que ela possa ser usada para consultar de um banco de dados e agrupar alterações que serão gravadas novamente no repositório como uma unidade. DbContext é conceitualmente semelhante a ObjectContext.

ValidateEntity(DbEntityEntry, IDictionary<Object,Object>)

Ponto de extensão que permite ao usuário personalizar a validação de uma entidade ou filtrar os resultados da validação. Chamado por GetValidationErrors().

Implantações explícitas de interface

IObjectContextAdapter.ObjectContext

Retorna o ObjectContext do Entity Framework subjacente a esse contexto.

Aplica-se a