Non riesco a trovare nulla di rilevante su Entity Framework / MySQL su Google, quindi spero che qualcuno lo sappia.
Non riesco a trovare nulla di rilevante su Entity Framework / MySQL su Google, quindi spero che qualcuno lo sappia.
Risposte:
È stato rilasciato - Ottieni il connettore MySQL per .Net v6.5 - questo ha il supporto per [Entity Framework]
Stavo aspettando questo per tutto il tempo, sebbene il supporto sia di base, funziona per la maggior parte degli scenari di base di interazione db. Ha anche l'integrazione di base di Visual Studio.
AGGIORNAMENTO 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. Questa 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 ).
Controlla il mio post su questo argomento.
MySQL ospiterà un webinar su EF tra pochi giorni ... Guarda qui: http://www.mysql.com/news-and-events/web-seminars/display-204.html
modifica: quel webinar è ora su http://www.mysql.com/news-and-events/on-demand-webinars/display-od-204.html
Non si tratta di SM e di ciò che vogliono. Hanno creato un * sistema aperto per consentire ad altri di collegare i 'fornitori' - postgres e sqlite ce l'hanno - mysql è solo laggin ... ma, buone notizie per chi è interessato, anch'io stavo cercando questo e ho scoperto che il connettore MySql / Net 6.0 lo avrà ... puoi verificarlo qui:
http://www.upfromthesky.com/blog/post/2009/03/24/MySql-Supports-the-Entity-Framework.aspx
Avresti bisogno di un fornitore di mappe per MySQL. Questa è una cosa in più di cui Entity Framework ha bisogno per realizzare la magia. Questo blog parla di altri fornitori di mappe oltre a quello fornito da Microsoft. Non ho trovato alcuna menzione di MySQL.
Vintana,
Ovviamente c'è qualcosa di pronto adesso. http://www.devart.com/products.html - è commerciale anche se (hai un IIRC di prova di 30 giorni). Si guadagnano da vivere scrivendo fornitori, quindi immagino che dovrebbe essere veloce e stabile. Conosco aziende davvero grandi che utilizzano il loro provider Oracle invece di Orace e MS.
Fai attenzione quando usi il connettore .net, il connettore 6.6.5 ha un bug, non funziona per l'inserimento di 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 nulla:
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 identità tinyint in identità int non firmata, questo ha risolto il problema ma questa non è la soluzione giusta.
Se usi una versione precedente di Connector.net (io ho usato la 6.4.4) non avrai questo problema.
Se qualcuno conosce la soluzione, per favore contattami.
Saluti!
Oware
Person p = new Person(){Name = "Oware"}; context.Person.Add(p); context.SaveChanges();
Potresti anche guardare https://www.devart.com/dotconnect/mysql/
Il connettore di DevArt supporta EF e MySQL.
Non ho visto il collegamento qui, ma c'è un connettore .NET beta per MySql. Fare clic su "Rilasci 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
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/