Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Add-Migration criaModelo

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?

1 resposta
solução!

Consegui!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software