it-swarm.it

Utilizzo di MySQL con Entity Framework

Non riesco a trovare nulla di rilevante su Entity Framework/MySQL su Google, quindi spero che qualcuno lo sappia.

268
vintana

È stato rilasciato - Ottieni il connettore MySQL per .Net v6.5 - questo ha il supporto per [Entity Framework]

Stavo aspettando tutto questo tempo, anche se il supporto è di base, funziona per la maggior parte degli scenari di base dell'interazione db. Ha anche l'integrazione di Visual Studio di base.

[~ # ~] update [~ # ~] http://dev.mysql.com/downloads/connector/net/ A partire dalla versione 6.7, Connector/Net non includerà più l'integrazione di MySQL per Visual Studio. Tale funzionalità è ora disponibile in un prodotto separato chiamato MySQL per Visual Studio disponibile utilizzando MySQL Installer per Windows (vedere http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows .html ).

192
Vin
22
pattersonc

MySQL ospiterà un webinar su EF tra qualche giorno ... Guarda qui: http://www.mysql.com/news-and-events/web-seminars/display-204.html

modifica: Quel webinar è ora disponibile su http://www.mysql.com/news-and-events/on-demand-webinars /display-od-204.html

10
Sir Code-A-Lot

Non si tratta della SM e di ciò che vogliono. Hanno creato un * sistema aperto per altri plug-in 'provider' - Postgres e sqlite ce l'hanno - mysql è solo un po 'in ritardo ... ma, buone notizie per chi è interessato, anch'io stavo cercando questo e ho scoperto che MySql Connector/Net 6.0 lo avrà ... puoi verificarlo qui:

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

7
bbqchickenrobot

Avresti bisogno di un provider di mapping per MySQL. Questa è un'altra cosa di cui l'Entity Framework ha bisogno per far accadere la magia. Questo blog parla di altri provider di mappe oltre a quello fornito da Microsoft. Non ho trovato alcuna menzione di MySQL.

5
Lars Truijens

Vintana,

Ovviamente c'è qualcosa di pronto ora. http://www.devart.com/products.html - è commerciale sebbene (hai una prova IIRC di 30 giorni). Si guadagnano da vivere scrivendo fornitori, quindi immagino che dovrebbe essere veloce e stabile. Conosco aziende davvero grandi che usano il loro provider Oracle invece di Orace e MS.

2
aaimnr

Questo tutorial di MySQL mostra come generare e usare entità EF come origine dati per un controllo.

1
Kasey Speakman

Fai attenzione usando il connettore .net, il Connettore 6.6.5 ha un bug, non funziona per inserire valori tinyint come identità, ad esempio:

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

se provi a inserire un oggetto come questo:

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

Otterrai un'eccezione di riferimento null:

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()

Fino ad ora non ho trovato una soluzione, ho dovuto cambiare la mia piccola identità in un'identità int non firmata, questo ha risolto il problema ma questa non è la soluzione giusta.

Se usi una versione precedente di Connector.net (ho usato 6.4.4) non avrai questo problema.

Se qualcuno conosce la soluzione, per favore contattami.

Saluti!

Oware

1
oware

Puoi anche guardare https://www.devart.com/dotconnect/mysql/

Il connettore DevArt supporta EF e MySQL.

1
scotru

Non ho visto il link qui, ma c'è un beta .NET Connector per MySql. Fai clic su "Release di sviluppo" per scaricare la versione 6.3.2 beta, che ha l'integrazione EF4/VS2010:

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

0
Brian Frantz

Se sei interessato a eseguire Entity Framework con MySql su mono/linux/macos, questo potrebbe essere utile https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on- mac-os /

0
Igor Yalovoy