it-swarm-es.com

Usando MySQL con Entity Framework

No puedo encontrar nada relevante sobre Entity Framework/MySQL en Google, así que espero que alguien lo sepa.

266
vintana

Se ha lanzado - Obtenga el conector MySQL para .Net v6.5 - esto tiene soporte para [Entity Framework]

Estuve esperando esto todo el tiempo, aunque el soporte es básico, funciona para la mayoría de los escenarios básicos de interacción de db. También tiene integración básica de Visual Studio.

UPDATEhttp://dev.mysql.com/downloads/connector/net/ A partir de la versión 6.7, Connector/Net ya no incluirá MySQL para la integración de Visual Studio. Esa funcionalidad ahora está disponible en un producto separado llamado MySQL para Visual Studio disponible mediante el MySQL Installer para Windows (consulte http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.html ).

191
Vin
22
pattersonc

MySQL está organizando un seminario web sobre EF en unos pocos días ... Mire aquí: http://www.mysql.com/news-and-events/web-seminars/display-204.html

editar: Ese seminario web ahora se encuentra en http://www.mysql.com/news-and-events/on-demand-webinars/display-od-204.html

10
Sir Code-A-Lot

Esto no es sobre la EM y lo que quieren. Han creado un * sistema abierto para que los demás se conecten con 'proveedores' - postgres y sqlite lo tienen - mysql solo está rezagado ... pero, buenas noticias para los interesados, yo también estaba buscando esto y descubrí que el conector MySql/Net 6.0 lo tendrá ... puedes verlo aquí:

http://www.upfromthesky.com/blog/post/2009/03/24/MySql-Supports-the-Entity-Framework.aspx

7
bbqchickenrobot

Necesitarías un proveedor de mapas para MySQL. Eso es algo adicional que el Entity Framework necesita para hacer que la magia suceda. Este blog habla sobre otros proveedores de mapas además del que suministra Microsoft. No he encontrado ninguna mención de MySQL.

5
Lars Truijens

Vintana

Por supuesto que hay algo listo ahora. http://www.devart.com/products.html - es comercial aunque (tienes una versión de prueba de IIRC de 30 días). Se ganan la vida escribiendo proveedores, así que supongo que debería ser rápido y estable. Sé que las compañías realmente grandes usan su proveedor de Oracle en lugar de Orace y MS.

2
aaimnr

Este tutorial de MySQL muestra cómo generar y usar entidades EF como una fuente de datos para un control.

1
Kasey Speakman

Tenga cuidado al usar el conector .net, el conector 6.6.5 tiene un error, no funciona para insertar valores de minúsculo como identidad, por ejemplo:

create table person(
    Id tinyint unsigned primary key auto_increment,
    Name varchar(30)
);

si intentas insertar un objeto como este:

Person p;
p = new Person();
p.Name = 'Oware'
context.Person.Add(p);
context.SaveChanges();

Obtendrá una excepción de referencia nula:

Referencia a objeto no establecida como instancia de un objeto.:
   en MySql.Data.Entity.ListFragment.WriteSql(StringBuilder sql)
   en MySql.Data.Entity.SelectStatement.WriteSql(StringBuilder sql)
   en MySql.Data.Entity.InsertStatement.WriteSql(StringBuilder sql)
   en MySql.Data.Entity.SqlFragment.ToString()
   en MySql.Data.Entity.InsertGenerator.GenerateSQL(DbCommandTree tree)
   en MySql.Data.MySqlClient.MySqlProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
   en System.Data.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree)
   en System.Data.Common.DbProviderServices.CreateCommand(DbCommandTree commandTree)
   en System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand(DbModificationCommandTree commandTree)
   en System.Data.Mapping.Update.Internal.DynamicUpdateCommand.CreateCommand(UpdateTranslator translator, Dictionary`2 identifierValues)
   en System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator translator, EntityConnection connection, Dictionary`2 identifierValues, List`1 generatedValues)
   en System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
   en System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
   en System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
   en System.Data.Entity.Internal.InternalContext.SaveChanges()
   en System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
   en System.Data.Entity.DbContext.SaveChanges()

Hasta ahora no he encontrado una solución, tuve que cambiar mi identidad tinyint por una identidad int sin firmar, esto resolvió el problema pero no es la solución correcta.

Si usa una versión anterior de Connector.net (yo usé 6.4.4) no tendrá este problema.

Si alguien sabe de la solución, por favor contácteme.

¡Aclamaciones!

Oware

1
oware

También puede consultar https://www.devart.com/dotconnect/mysql/

El conector de DevArt es compatible con EF y MySQL.

1
scotru

No vi el enlace aquí, pero hay un conector .NET beta para MySql. Haga clic en "Development Releases" para descargar la versión 6.3.2 beta, que tiene integración EF4/VS2010:

http://dev.mysql.com/downloads/connector/net/5.0.html#downloads

0
Brian Frantz

Si está interesado en ejecutar Entity Framework con MySql en mono/linux/macos, esto podría ser útil https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac- os/

0
Igor Yalovoy