Não consigo criar o banco no modo CodeFirst. Só consegui tentando por ModelFirst.
Recebo este Error: PM> Add-Migration criaModelo No DbContext was found. Ensure that you're using the correct assembly and that the type is neither abstract nor generic.
Antes executei no projeto: 1 - PM> Install-Package EntityFramework.MicrosoftSqlServer -Version 7.0.0-rc1-final
2 - PM> Install-Package EntityFramework.Commands -Version 7.0.0-rc1-final
3 - Adiciono New Item (Data / SQL Server Database) arquivo mdb (não percebi a string de conexão).
4 - Criado a primeira entidade (class.cs)
5 - Criado o arquivo Context do banco
public class EntidadesContexto : DbContext
{
public DbSet<Area> Areas { get; set; }
demais entidades...
}
Estou tentando fazer um sisteminha de teste.
Meu arquivo de context:
namespace ProjetoEntity2.Entidades
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class EntidadesContext : DbContext
{
public EntidadesContext()
: base("name=EntidadesContext")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Aluno> Alunos { get; set; }
public virtual DbSet<Area> Areas { get; set; }
public virtual DbSet<Avaliaco> Avaliacoes { get; set; }
public virtual DbSet<Curriculo> Curriculos { get; set; }
public virtual DbSet<Curso> Cursos { get; set; }
public virtual DbSet<Disciplina> Disciplinas { get; set; }
public virtual DbSet<Funcionario> Funcionarios { get; set; }
// Sendo que Professor é uma classe que herda de Funcionário. Eu não gostaria que fosse criado uma tabela professor no banco.
// A tabela Funcionários deveria ter os campos de professor no Banco.
//public virtual DbSet<Professor> Professores { get; set; }
public virtual DbSet<Matricula> Matriculas { get; set; }
public virtual DbSet<Sala> Salas { get; set; }
public virtual DbSet<Turma> Turmas { get; set; }
}
}
Meu arquivo controller:
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
EntidadesContext contexto = new EntidadesContext();
Area teste = new Area()
{
Nome = "Nova Area 2"
};
contexto.Areas.Add(teste);
contexto.SaveChanges();
contexto.Dispose();
Disciplina d = new Disciplina()
{
Nome = "Matemática",
CargaHoraria = 20,
//Turma.DataInicial = "01/01/2017"; // Erro aqui (cod comentado)
};
contexto.Disciplinas.Add(d);
contexto.SaveChanges();
contexto.Dispose();
ViewBag.Mensagem = "Inserido com sucesso: Nome = " + teste.Nome;
return View();
}
}
Assim eu tentei outro caminho também, qual foi? Eu tentei criar somente 1 tabela por vez. Aí, funciona a criação da primeira, mas na sequencia não funciona o Add-Migrations para atualizar o restante do banco. Pode me ajudar?