EntityFramework 6 Alpha 2 y MySQL Connector / NET 6.6.4

entity-framework entity-framework-6 mysql mysql-connector

Pregunta

El conector 6.6.4 MySQL .NET aparentemente tiene soporte para EF6. He actualizado de EF5 y .NET 4 a EF6 alpha2 y .NET 4.5. He recreado el modelo de datos de entidad de ADO.NET desde la actualización.

Al hacer cualquier cosa en la base de datos, aparece un mensaje de excepción que dice:

ItemModel.ssdl (2,2): error 0152: No se ha encontrado ningún proveedor de Entity Framework para el proveedor de ADO.NET 'MySql.Data.MySqlClient'. Asegúrese de que el proveedor esté registrado en la sección 'entityFramework' del archivo de configuración de la aplicación. Consulte http://go.microsoft.com/fwlink/?LinkId=260882 para obtener más información.

Actualmente mi archivo app.config contiene;

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
<connectionStrings>
    <add name="ItemEntities" connectionString="metadata=res://*/ItemModel.csdl|res://*/ItemModel.ssdl|res://*/ItemModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=user;password=password;persist security info=True;database=Item_dbo&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

¿Hay algún elemento de configuración que falte legítimamente en mi app.config, o simplemente estoy usando una versión del conector MySQL y EF alpha que simplemente no son compatibles entre sí?

Mi intención es hacer que esto funcione bajo mono 3.0.3 cuando esto haya tenido éxito en Windows.

Respuesta popular

simple agrega esto a tu web.config

  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.6.4.0" />
    </DbProviderFactories>
  </system.data>

  <entityFramework>
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.6.4.0" >
      </provider>
    </providers>
  </entityFramework>

Pero no creo que puedas usar 6.6.4 con EF6 ...




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué