No puedo encontrar nada relevante sobre Entity Framework / MySQL en Google, así que espero que alguien lo sepa.
No puedo encontrar nada relevante sobre Entity Framework / MySQL en Google, así que espero que alguien lo sepa.
Respuestas:
Ha sido 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 db. También tiene integración básica de Visual Studio.
ACTUALIZACIÓN http://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 utilizando el instalador MySQL para Windows (consulte http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.html ).
Mira mi publicación sobre este tema.
MySQL está organizando un seminario web sobre EF en unos días ... Mire aquí: http://www.mysql.com/news-and-events/web-seminars/display-204.html
editar: Ese seminario web ahora está en http://www.mysql.com/news-and-events/on-demand-webinars/display-od-204.html
No se trata de la EM y de lo que quieren. Han creado un * sistema abierto para que otros conecten 'proveedores': Postgres y sqlite lo tienen: mysql es solo un retraso ... pero, buenas noticias para los interesados, yo también estaba buscando esto y descubrí que el conector MySql / Net 6.0 lo tendrá ... puedes consultarlo aquí:
http://www.upfromthesky.com/blog/post/2009/03/24/MySql-Supports-the-Entity-Framework.aspx
Necesitaría un proveedor de mapeo para MySQL. Eso es algo adicional que Entity Framework necesita para que la magia suceda. Este blog habla sobre otros proveedores de mapeo además del que está suministrando Microsoft. No he encontrado ninguna mención de MySQL.
Vintana
Por supuesto que hay algo listo ahora. http://www.devart.com/products.html - aunque es comercial (tiene una prueba IIRC de 30 días). Se ganan la vida escribiendo proveedores, así que supongo que debería ser rápido y estable. Conozco compañías realmente grandes que usan su proveedor de Oracle en lugar de las de Orace y MS.
Tenga cuidado al usar el conector .net, el conector 6.6.5 tiene un error, no funciona para insertar valores de tinyint como identidad, por ejemplo:
create table person(
Id tinyint unsigned primary key auto_increment,
Name varchar(30)
);
si intenta 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 a identidad int sin firmar, esto resolvió el problema, pero esta no es la solución correcta.
Si utiliza una versión anterior de Connector.net (utilicé 6.4.4) no tendrá este problema.
Si alguien conoce la solución, contácteme.
¡Salud!
Oware
Person p = new Person(){Name = "Oware"}; context.Person.Add(p); context.SaveChanges();
También puede consultar https://www.devart.com/dotconnect/mysql/
El conector de DevArt es compatible con EF y MySQL.
No vi el enlace aquí, pero hay un Beta .NET Connector para MySql. Haga clic en "Lanzamientos de desarrollo" para descargar 6.3.2 beta, que tiene integración EF4 / VS2010:
http://dev.mysql.com/downloads/connector/net/5.0.html#downloads
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/