none
Erro ao criar controller EF6 + mysql RRS feed

  • Pergunta

  • Bom dia pessoas, como vão?

    Estou fazendo um projeto para a faculdade, e estou enfrentando algumas dificuldades bobas, mas que estão atrapalhando o bom andamento do serviço.

    Como estou fazendo esse projeto sozinho optei por fazer com code first + .net 4.5.1 + C# + EF6 + mysql.

    O EF, quando uso o banco de dados do visual studio, consigo montar um controller sem problemas, mas estava tendo problemas ao usar o mysql. Está aparecendo a seguinte mensagem de erro:

    Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used.

    Meu web.config está da seguinte maneira:

    <?xml version="1.0" encoding="utf-8"?>
    <!--
      For more information on how to configure your ASP.NET application, please visit
      http://go.microsoft.com/fwlink/?LinkId=301880
      -->
    <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>
      <appSettings>
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
      </appSettings>
      <system.web>
        <compilation debug="true" targetFramework="4.5.1" />
        <httpRuntime targetFramework="4.5.1" />
      </system.web>
      <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="ChazaoContexto" connectionString="Server=localhost;Database=chazao;Uid=root;Pwd=usbw;Port=3307;" providerName="MySql.Data.MySqlClient" />
      </connectionStrings>
    </configuration>

    O contexto está assim:

    [DbConfigurationType(typeof(MySqlEFConfiguration))]
        public class ChaContexto : DbContext
        {
            public ChaContexto()
                : base("ChazaoContexto")
            {
                Database.SetInitializer(new DropCreateDatabaseIfModelChanges<ChaContexto>());
            }
    
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                //modelBuilder.Conventions.Remove<System.Data.Entity.Infrastructure.IncludeMetadataConvention>();
                modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            }
    
            public DbSet<Produto> Produto { get; set; }
            public DbSet<Estado> Estado { get; set; }

    E coloquei no global.asax o seguinte:

    DbConfiguration.SetConfiguration(new MySqlEFConfiguration());

    Alguma luz? Já estou quase desistindo e partindo para o jsf.

    Obrigado.

    Gustavo Schwartz

    P.S.: estou usando o Visual Studio 2013.

    sexta-feira, 7 de março de 2014 13:25

Todas as Respostas

  • O Entity versão 6 não funciona com Mysql, o erro diz que Database no supported, eu já fiz esse teste e realmente não funciona ... acho que para Mysql mudou alguma coisa!

    O que eu fiz em um projeto que tenho Mysql voltei para trás (kkkkkkkk), instalei a versão 5.0 pelo nuget e funcionou que é uma beleza.

    Para voltar é só digitar no 

    assim

    PM> Install-Package EntityFramework -Version 5.0.0

    Link:  http://www.nuget.org/packages/EntityFramework/5.0.0

    OK!!!

     

    Fulvio Cezar Canducci Dias

    sexta-feira, 7 de março de 2014 22:11
  • Fúlvio, valeu pela dica.

    Tentei agora, não rolou, então vou tentar amanhã de um projeto do zero.

    Obrigado.

    sábado, 8 de março de 2014 02:41
  • Fúlvio, sou novo em desenvolvimento, mas eu estou em um projeto particular utilizando justamente a configuração que o Gustavo mencionou (EF 6.0.2,  MySql 5.6, C#, MVC 5, Frame 4.5) e está funcionando perfeitamente. Consegui até habilitar o migration. Neste momento apenas estou com dificuldades de desabilitar a pluralização, ele não está aceitando o modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    quinta-feira, 13 de março de 2014 00:53
  • Fúlvio, sou novo em desenvolvimento, mas eu estou em um projeto particular utilizando justamente a configuração que o Gustavo mencionou (EF 6.0.2,  MySql 5.6, C#, MVC 5, Frame 4.5) e está funcionando perfeitamente. Consegui até habilitar o migration. Neste momento apenas estou com dificuldades de desabilitar a pluralização, ele não está aceitando o modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();


    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 	
    	modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
    }

    por acaso se fez assim!

    se sim, então coloque aqui para gente todo o seu código!


    Fulvio Cezar Canducci Dias

    quinta-feira, 13 de março de 2014 01:02
  • Eu utilizei este artigo: http://www.asp.net/mvc/tutorials/security/aspnet-identity-using-mysql-storage-with-an-entityframework-mysql-provider
    quinta-feira, 13 de março de 2014 01:27