DEV Community

Yuri Peixinho
Yuri Peixinho

Posted on • Edited on

EF Core - DBContext

A classe dbContext faz parte do Entity Framework e sua instância representa uma sessão do banco de dados. Nessa sessão você pode manipular e salvar instâncias de sua entidade para um banco de dados.

Para usar o dbContext na sua aplicação, você deve criar uma classe que herda de dbContext.

public class EscolaContext: DbContext
{   
    public SeuContexto(DbContextOptions<SeuContexto> options) : base(options)
    {

    }
} 
Enter fullscreen mode Exit fullscreen mode

A classe acima está derivando do DbContext e pode ser chamado de “classe de contexto”. Apesar de ter sido apenas declarado esse nosso trecho de código não faz nada ainda.

Quando começamos a trabalhar em um projeto, definimos nossas classes que representam a nossa entidade. São modelos de dados com propriedades correspondentes aos campos do banco de dados. Porém não é suficiente ter apenas os Models precisamos transformá-las em entidades rastreáveis.

Então, em nossa classe de contexto temos que declarar a propriedade DBSet. (DbSet<TEntity>)

Quando declaramos essa propriedade em nossa classe de contexto estamos dizendo ao Entity Framework que queremos que ele rastreie e gerencie as entidades desse tipo no banco de dados.

Agora, vamos imaginar que na nossa aplicação tem dois Models: Estudante e Materia, podemos transformá-las em entidades do Entity Framework adicionando em nossa classe de contexto. Vale ressaltar que você precisa ter os modelos criados em sua aplicação.

public class EscolaContext: DbContext
{     
    public DbSet<Student> Estudantes { get; set; }
    public DbSet<Grade> Materias { get; set; }
} 
Enter fullscreen mode Exit fullscreen mode

Após fazer isso, o EF Core será capaz de rastrear as instâncias de Estudante e Materia que estão associadas ao contexto EscolaContext permitindo a interação com o banco de dados.

👈🏻 Voltar leitura
👉🏻 Continuar leitura - onModelCreating (recomendado)
👉🏻 Continuar leitura - Configurar banco de dados

Top comments (0)