none
Entity Framework - problema com Enable-Migrations RRS feed

  • Pergunta

  • Estou seguindo uma apostila que aborda um pouco de Entity Framework, o meu é o 6. A acompanhando, criei algumas classes:

    namespace EntityFramework
    {   
        class k19Context : DbContext
        {
            public DbSet<Turma> Turmas  { get; set; }
            public DbSet<Aluno> Alunos { get; set; }
            public DbSet<Professor> Professores{ get; set; }
        }
    }

    Fiz um teste para inserir dados em Alunos:

    public void InserirAlunos() 
            {
                using(var k19Ctx = new k19Context())
                {
                    Aluno a = new Aluno();
    
                    Console.WriteLine("Digite o nome do aluno: ");
                    a.Nome = Console.ReadLine();
    
                    a.Endereco = new Endereco();
    
                    Console.WriteLine("Digite o logradouro: ");
                    a.Endereco.Logradouro = Console.ReadLine();
    
                    Console.WriteLine("Digite o CEP: ");
                    a.Endereco.CEP = Console.ReadLine();
    
                    Console.WriteLine("Digite o número: ");
                    a.Endereco.Numero = Convert.ToInt32(Console.ReadLine());
    
                    k19Ctx.Alunos.Add(a);
                    k19Ctx.SaveChanges();
                }
            }

    O meu App.config é esse:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </configSections>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="v11.0" />
          </parameters>
        </defaultConnectionFactory>
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        </providers>
      </entityFramework>
      <connectionStrings>
        <add name="k19Context" providerName="System.Data.SqlClient" connectionString="data source=PC;initial catalog=livraria2;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"/>
      </connectionStrings>
    </configuration>

    Até aí tudo certo, criou o banco e as tabelas e inseriu os dados em Alunos. Quando adicionei um atributo na classe Alunos deu uma exceção, a apostila fala sobre esse problema e pede para que eu use o Package Manager Console e digite o comando "Enable-Migrations", mas aqui ocorreu este problema:

    PM> enable-migrations
    More than one context type was found in the assembly 'EntityFramework'.
    To enable migrations for 'System.Data.Entity.DbContext', use Enable-Migrations -ContextTypeName System.Data.Entity.DbContext.
    To enable migrations for 'System.Data.Entity.Infrastructure.TransactionContext', use Enable-Migrations -ContextTypeName System.Data.Entity.Infrastructure.TransactionContext.
    To enable migrations for 'System.Data.Entity.Migrations.Infrastructure.ModificationCommandTreeGenerator+TempDbContext', use Enable-Migrations -ContextTypeName System.Data.Entity.Migrations.Infrastructure.ModificationCommandTreeGenerator+TempDbContext.
    To enable migrations for 'System.Data.Entity.Internal.EdmMetadataContext', use Enable-Migrations -ContextTypeName System.Data.Entity.Internal.EdmMetadataContext.
    To enable migrations for 'System.Data.Entity.Migrations.History.LegacyHistoryContext', use Enable-Migrations -ContextTypeName System.Data.Entity.Migrations.History.LegacyHistoryContext.
    To enable migrations for 'System.Data.Entity.Migrations.Utilities.EmptyContext', use Enable-Migrations -ContextTypeName System.Data.Entity.Migrations.Utilities.EmptyContext.

    Diz que tenho mais de um context, não sei o por que disso, para mim eu apenas tinha o contexto k19Context quando criei justamente a classe k19Context.cs que herda de DbContext. Então por que tenho vários contextos? E como resolvo esse problema? Já pesquisei, tentei algumas coisas aqui como neste link e não deu certo. Como resolver?





    • Editado Willian2013 sexta-feira, 12 de junho de 2015 08:09 correção
    sexta-feira, 12 de junho de 2015 07:30

Respostas

Todas as Respostas