Olá, gostaria de saber como criaria uma classe para quando inicializar o sistema, onde eu possa testar se alguns dados estão cadastrados no sistema e se não estiver eu poder realizar o cadastro desses dados.
Olá, gostaria de saber como criaria uma classe para quando inicializar o sistema, onde eu possa testar se alguns dados estão cadastrados no sistema e se não estiver eu poder realizar o cadastro desses dados.
Olá, Fagner
Você pode criar um método com nome InserirDadosIniciais()
, ou algo parecido, que vai verificar se os dados iniciais já existem. Se não existirem, ele cria o dados iniciais. Recomendo usar Entity Framework, por exemplo:
using (MinhasEntidades db = new MinhasEntidades())
{
if (!db.Categorias.Any(c => c.CategoriaCodigo == "cat1"))
{
Categoria categoria = new Categoria();
categoria.CategoriaCodigo = "cat1";
categoria.Nome = "Categoria 1";
db.Categorias.Add(categoria);
db.SaveChanges();
}
}
Esse método pode ficar numa classe CategoriaDAO
, por exemplo.
Já a chamada desse método pode ficar no método Application_Startup()
do Global.asax.cs
(se estiver usando ASP.NET 4.x) ou no método Configure()
na classe Startup.cs
se estiver usando ASP.NET Core.
Muito obrigado, vou testar essa solução.
Eu estou testando mas o Global.asax pede um construtor vazio do "DisciplinaDAO" , com isso o "Contexto" é null e meu IF quebra pela referencia Nula do contexto que o Application_Start Pega do Construtor Vazio do "DisciplinaDAO". Eu Tentei colocar no construtor da Classe MvcApplication, porém ocorre um erro de compilação.
protected void Application_Start()
{
DisciplinaDAO disciplina = new DisciplinaDAO();
disciplina.VerificarDisciplinasCadastradas();
}
private Contexto contexto;
public DisciplinaDAO(Contexto contexto)
{
this.contexto = contexto;
}
public DisciplinaDAO()
{
}
public void VerificarDisciplinasCadastradas()
{
var disciplinas = new List<Disciplina>();
if (!contexto.Disciplinas.Any(arg => arg.NomeDisciplina == "LINGUA PORTUGUESA"))
{
var disciplina = new Disciplina();
disciplina.NomeDisciplina = "LINGUA PORTUGUESA";
disciplina.MaximoPontos = "A";
disciplina.MediaPontos = "B";
disciplina.MinimoPonto = "C";
disciplinas.Add(disciplina);
}
}
foreach(var novadisciplina in disciplinas)
{
Salvar(novadisciplina);
}
Seu contexto
está nulo, então você tem que passar instanciar o contexto e passá-lo no construtor do DAO:
using (MinhasEntidades contexto = new MinhasEntidades())
{
DisciplinaDAO disciplina = new DisciplinaDAO(contexto);
disciplina.VerificarDisciplinasCadastradas();
}
Obrigado, agora foi que é uma beleza.
Código
Contexto contexto = new Contexto();
DisciplinaDAO disciplina = new DisciplinaDAO(contexto);
disciplina.VerificarDisciplinasCadastradas();
Excelente, Fagner! Qualquer coisa, estamos à disposição!