Ich kann bei Google nichts Relevantes über Entity Framework / MySQL finden, also hoffe ich, dass jemand davon weiß.
Ich kann bei Google nichts Relevantes über Entity Framework / MySQL finden, also hoffe ich, dass jemand davon weiß.
Antworten:
Es wurde veröffentlicht - Holen Sie sich den MySQL-Connector für .Net v6.5 - dies unterstützt [Entity Framework]
Ich habe die ganze Zeit darauf gewartet, obwohl die Unterstützung grundlegend ist, funktioniert sie für die meisten grundlegenden Szenarien der Datenbankinteraktion. Es hat auch grundlegende Visual Studio-Integration.
UPDATE http://dev.mysql.com/downloads/connector/net/ Ab Version 6.7 enthält Connector / Net die Integration von MySQL für Visual Studio nicht mehr. Diese Funktionalität ist jetzt in einem separaten Produkt namens MySQL für Visual Studio verfügbar, das mit dem MySQL Installer für Windows verfügbar ist (siehe http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.html ).
Schauen Sie sich meinen Beitrag zu diesem Thema an.
MySQL veranstaltet in wenigen Tagen ein Webinar über EF ... Siehe hier: http://www.mysql.com/news-and-events/web-seminars/display-204.html
Bearbeiten: Dieses Webinar befindet sich jetzt unter http://www.mysql.com/news-and-events/on-demand-webinars/display-od-204.html
Hier geht es nicht um MS und was sie wollen. Sie haben ein * offenes System für andere geschaffen, um 'Anbieter' anzuschließen - Postgres und SQLite haben es - MySQL ist nur eine Verzögerung ... aber gute Nachrichten für Interessierte, auch ich habe danach gesucht und festgestellt, dass der MySQL-Connector / Net 6.0 wird es haben ... Sie können es hier überprüfen:
http://www.upfromthesky.com/blog/post/2009/03/24/MySql-Supports-the-Entity-Framework.aspx
Sie benötigen einen Mapping-Anbieter für MySQL. Das ist eine zusätzliche Sache, die das Entity Framework benötigt, um die Magie zu verwirklichen. In diesem Blog geht es um andere Mapping-Anbieter als den, den Microsoft anbietet. Ich habe keine Erwähnungen von MySQL gefunden.
Vintana,
Natürlich ist jetzt etwas fertig. http://www.devart.com/products.html - es ist zwar kommerziell (Sie haben eine 30-Tage-Testversion IIRC). Sie verdienen ihren Lebensunterhalt mit dem Schreiben von Anbietern, daher denke ich, dass es schnell und stabil sein sollte. Ich kenne wirklich große Unternehmen, die ihren Oracle-Anbieter anstelle von Orace- und MS-Anbietern verwenden.
Seien Sie vorsichtig mit Connector .net, Connector 6.6.5 hat einen Fehler, es funktioniert nicht zum Einfügen von tinyint-Werten als Identität, zum Beispiel:
create table person(
Id tinyint unsigned primary key auto_increment,
Name varchar(30)
);
Wenn Sie versuchen, ein Objekt wie folgt einzufügen:
Person p;
p = new Person();
p.Name = 'Oware'
context.Person.Add(p);
context.SaveChanges();
Sie erhalten eine Nullreferenzausnahme:
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()
Bis jetzt habe ich keine Lösung gefunden. Ich musste meine tinyint-Identität in unsigned int identity ändern. Dies löste das Problem, aber dies ist nicht die richtige Lösung.
Wenn Sie eine ältere Version von Connector.net verwenden (ich habe 6.4.4 verwendet), tritt dieses Problem nicht auf.
Wenn jemand von der Lösung weiß, kontaktieren Sie mich bitte.
Prost!
Oware
Person p = new Person(){Name = "Oware"}; context.Person.Add(p); context.SaveChanges();
Sie können sich auch https://www.devart.com/dotconnect/mysql/ ansehen.
Der Connector von DevArt unterstützt EF und MySQL.
Ich habe den Link hier nicht gesehen, aber es gibt einen Beta .NET Connector für MySql. Klicken Sie auf "Entwicklungsversionen", um die Beta-Version 6.3.2 mit EF4 / VS2010-Integration herunterzuladen:
http://dev.mysql.com/downloads/connector/net/5.0.html#downloads
Wenn Sie Entity Framework mit MySql unter mono / linux / macos ausführen möchten, ist dies möglicherweise hilfreich. Https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac-os/