it-swarm-eu.dev

Verwenden von MySQL mit Entity Framework

Sie können bei Google keine relevanten Informationen zu Entity Framework/MySQL finden. Ich hoffe, dass jemand davon erfährt.

268
vintana

Es wurde veröffentlicht - Holen Sie sich das MySQL-Connector für .Net v6.5 - dies hat Unterstützung für [Entity Framework]

Ich habe die ganze Zeit darauf gewartet, obwohl der Support grundlegend ist, funktioniert er für die meisten grundlegenden Szenarien der DB-Interaktion. 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-Installationsprogramm für Windows verfügbar ist (siehe http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows) .html ).

192
Vin
22
pattersonc

MySQL veranstaltet in wenigen Tagen ein Webinar über EF ... Schauen Sie hier: http://www.mysql.com/news-and-events/web-seminars/display-204.html

edit: Dieses Webinar befindet sich jetzt unter http://www.mysql.com/news-and-events/on-demand-webinars) /display-od-204.html

10
Sir Code-A-Lot

Hier geht es nicht um MS und darum, was sie wollen. Sie haben ein * offenes System für andere geschaffen, um "Provider" einzubinden - Postgres und SQLite haben es - MySQL ist nur eine Verzögerung ... aber gute Nachrichten für die Interessierten, ich habe auch 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

7
bbqchickenrobot

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. Dieser Blog spricht über andere Kartenanbieter als den, den Microsoft anbietet. Ich habe keine Erwähnungen von MySQL gefunden.

5
Lars Truijens

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, daher sollte es schnell und stabil sein. Ich kenne wirklich große Unternehmen, die ihren Oracle-Anbieter anstelle von Orace- und MS-Anbietern einsetzen.

2
aaimnr

Dieses MySQL-Tutorial zeigt, wie EF-Entities als Datenquelle für ein Steuerelement generiert und verwendet werden.

1
Kasey Speakman

Seien Sie vorsichtig bei der Verwendung von Connector .net. Connector 6.6.5 weist einen Fehler auf. Es funktioniert nicht beim Einfügen von tinyint-Werten als Identität. Beispiel:

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

wenn Sie versuchen, ein Objekt wie dieses einzufügen:

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

Sie erhalten eine Null-Referenz-Ausnahme:

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 hat das Problem gelöst, aber dies ist nicht die richtige Lösung.

Wenn Sie eine ältere Version von Connector.net (ich habe 6.4.4 verwendet) verwenden, wird dieses Problem nicht auftreten.

Wenn jemand etwas über die Lösung weiß, kontaktieren Sie mich bitte.

Prost!

Oware

1
oware

Sie können sich auch https://www.devart.com/dotconnect/mysql/ ansehen

Der DevArt-Connector unterstützt EF und MySQL.

1
scotru

Ich habe den Link hier nicht gesehen, aber es gibt einen Beta-.NET-Connector für MySql. Klicken Sie auf "Development Releases", um die Beta-Version 6.3.2 mit EF4/VS2010-Integration herunterzuladen:

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

0
Brian Frantz

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 /

0
Igor Yalovoy