2012-05-17 21 views
5

En este tutorial funciona muy bien con SQL Express: http://msdn.microsoft.com/en-us/library/gg197522(v=VS.103).aspxEntidad marco 5.0 de código primero con MySQL en WPF

me gustaría que funcione con MySQL. Investigué un poco, pero ninguna de las técnicas que he encontrado ha podido hacerlo por mí. Idealmente me gustaría hacer algo como esto:

 <entityFramework> 
    <defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" /> 
    </entityFramework> 

esto no funciona (no tengo MySQL Connector Net 6.5.4 instalado & MySql.Data referencia). He intentado que deriva de la fábrica IDbConnection como se muestra en esta clase aquí: http://www.vworker.com/RentACoder/misc/BidRequests/ShowBidRequest.asp?lngBidRequestId=1563829

y luego usando:

 <entityFramework> 
<defaultConnectionFactory type="SchoolModel.MySqlConnectionFactory, SchoolModel" /> 

pero que no funciona bien. ¿Alguien puede darme algunos consejos sobre cómo hacer que esto funcione?

Muchas gracias.

+0

no funciona, no es una descripción del problema. ¿Recibe alguna excepción? ¿Qué es un registro y un mensaje de pila de excepción? –

+0

No funciona significa que las técnicas descritas anteriormente no conectan el código a la base de datos MySQL.Sin excepciones, la aplicación continúa su conexión a la base de datos predeterminada SQLEXPRESS. ¡Gracias por su respuesta! –

+0

Solo para verificar los conceptos básicos, ¿tiene la cadena de conexión configurada correctamente para conectarse a MySQL, o la dejó en sus valores predeterminados (que serían SQL Express o SQL CE)? –

Respuesta

0

Ha establecido el Datasource en MySQL mientras configuraba su conexión db. Además, haga clic y asegúrese de que "Probar conexión" tenga éxito antes de intentar una conexión directamente desde el código.

enter image description here

enter image description here

0

Conector 6.5.4 no es compatible con el código, primero con EF 5. En realidad no es compatible con el código en primer lugar.

Puede intentar usar el conector dot net (al menos la versión de prueba).

3

utilizar la conexión de 6.5.4 con EF5 en código por primera vez en VS2012 que necesita:

  1. instalar MySQL 6.5.4 Conector msi
  2. abierto VS2012 x86 símbolo del sistema como administrador y ejecutar:

    gacutil/i "C: \ Archivos de programa (x86) \ MySQL \ Connector NET 6.5.4 \ Assemblies \ v4.0 \ mysql.data.dll" gacutil/i "C: \ Archivos de programa (x86) \ MySQL \ Connector NET 6.5.4 \ Assemblies \ v4.0 \ mysql.data.entity.dll "

  3. Añadir App.config en su proyecto de este código a la sección <configuration>:

    <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.5.4.0, Culture=neutral, 
          PublicKeyToken=c5687fc88969c44d" 
         /> 
        </DbProviderFactories> 
    </system.data> 
    
  4. Ahora agregue referencias a MySql.Data y MySql.Data.Entity a su solución y algo de código como este (creo MySqlConnection, a continuación, pasarlo al constructor del MyDbContext)

    public class MyDbContext : DbContext 
    { 
        public MyDbContext(DbConnection connection) : base(connection, true) { } ​ 
    
        public DbSet<Product> Products { get; set; } 
    } 
    
    [Table("sund_jshopping_products")] 
    public class Product 
    { 
        [Key] 
        [Column("product_id")] 
        public int Id { get; set; } 
        [Column("product_ean")] 
        public string Ean { get; set; } 
        [Column("product_manufacturer_id")] 
        public int OperatorId { get; set; } 
        [Column("months_status")] 
        public string MonthsStatus { get; set; } 
        [Column("extra_field_5")] 
        public string SideId { get; set; } 
    } 
    
+1

¿Puedes dar un ejemplo de cómo creas un objeto MySql 'DbConnection'? Además, ¿ha actualizado a MySql Connector 6.6.5.0 y ha encontrado una forma diferente de hacerlo, donde puede especificar todo en app.config? –

Cuestiones relacionadas