RicardoOliver / ProjetoEntitiFramework

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Melhorias

Este código define a classe CadastroContext que herda da classe DbContext, fornecida pelo Entity Framework. A classe DbContext é responsável por facilitar o acesso e a manipulação de dados de um banco de dados usando o padrão ORM (Object-Relational Mapping).

A classe CadastroContext possui várias propriedades do tipo DbSet, onde cada uma delas representa uma tabela no banco de dados. Essas tabelas são mapeadas para classes de modelo específicas, como CompraMercadoriaModel, LoginViewModel, NomeMercadoriaModel, etc.

Existem três construtores na classe CadastroContext:

O primeiro construtor recebe uma string de conexão como parâmetro e chama o construtor base da classe DbContext, passando a string de conexão. Em seguida, ele chama o método InitializeContext() para inicializar o contexto.

O segundo construtor não recebe nenhum parâmetro e chama o construtor base da classe DbContext, passando o nome da chave da conexão definida no arquivo de configuração (App.Config ou Web.Config) como uma string. Também chama o método InitializeContext().

O terceiro construtor recebe uma conexão do tipo DbConnection e um booleano indicando se o contexto é dono da conexão. Ele chama o construtor base da classe DbContext, passando a conexão e o valor booleano. Em seguida, chama o método InitializeContext().

O método InitializeContext() é responsável por configurar o contexto. Neste caso, o método chama Database.SetInitializer(null) para desabilitar a criação automática do banco de dados pelo Entity Framework.

Além disso, o método OnModelCreating() é sobrescrito para configurar o mapeamento das entidades para as tabelas no banco de dados usando o objeto DbModelBuilder. Cada chamada para modelBuilder.Entity() mapeia a classe de modelo correspondente para a tabela com o nome especificado.

Em resumo, esse código define o contexto de banco de dados CadastroContext e mapeia várias classes de modelo para tabelas no banco de dados. Ele também configura o contexto e o mapeamento das entidades durante a inicialização.

public class CadastroContext : DbContext
{

    public DbSet<CompraMercadoriaModel> compraMercadoriaModels { get; set; }

    public DbSet<LoginViewModel> loginViewModels { get; set; }

    public DbSet<NomeMercadoriaModel> nomeMercadoriaModels { get; set; }

    public DbSet<PrecoMercadoriaModel> precoMercadoriaModels { get; set; }

    public DbSet<QuantidadeMercadoriaModel> quantidadeMercadoriaModels { get; set; }

    public DbSet<TipoMercadoriaModel> tipoMercadoriaModels { get; set; }

    public DbSet<UsuarioModel> usuarioModels { get; set; }

    public DbSet<VendaMercadoriaModel> vendaMercadoriaModels { get; set; }

    public CadastroContext(string connectionString)
    : base(connectionString)
    {
        InitializeContext();
    }
    public CadastroContext()
        : base("Key name on App.Config/Web.Config")
    {
        InitializeContext();
    }
    public CadastroContext(DbConnection connection, bool contextOwnsConnection)
        : base(connection, contextOwnsConnection)
    {
        InitializeContext();
    }
    private void InitializeContext()
    {
        Database.SetInitializer<CadastroContext>(null);
    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<CompraMercadoriaModel>().ToTable("CompraMercadoriaModels");
        modelBuilder.Entity<LoginViewModel>().ToTable("LoginViewModels");
        modelBuilder.Entity<NomeMercadoriaModel>().ToTable("NomeMercadoriaModes");
        modelBuilder.Entity<PrecoMercadoriaModel>().ToTable("PrecoMercadoriaModels");
        modelBuilder.Entity<QuantidadeMercadoriaModel>().ToTable("QuantidadeMercadoriaModels");
        modelBuilder.Entity<TipoMercadoriaModel>().ToTable("TipoMercadoriaModels");
        modelBuilder.Entity<UsuarioModel>().ToTable("UsuarioModels");
        modelBuilder.Entity<VendaMercadoriaModel>().ToTable("VendaMercadoriaModels");
        base.OnModelCreating(modelBuilder);
    }
}

About


Languages

Language:HTML 47.5%Language:C# 44.5%Language:JavaScript 7.5%Language:CSS 0.5%Language:ASP.NET 0.1%