Inquiridor
Erro ao criar controller EF6 + mysql

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.
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!!!
-
-
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>();
-
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!
-