visual studio framework for conectar con mysql .net entity-framework ado.net

for - entity framework mysql visual studio 2017



Usando MySQL con Entity Framework (11)

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





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.



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 db. También tiene la 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 usando el instalador de MySQL para Windows (consulte http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.html ).




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 diminuta a una identidad int sin firmar, esto resolvió el problema pero esta 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


Vintana

Claro 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.