Nie mogę znaleźć niczego istotnego na temat Entity Framework / MySQL w Google, więc mam nadzieję, że ktoś o tym wie.
Nie mogę znaleźć niczego istotnego na temat Entity Framework / MySQL w Google, więc mam nadzieję, że ktoś o tym wie.
Odpowiedzi:
Zostało wydane - Pobierz konektor MySQL dla .Net v6.5 - ma on obsługę [Entity Framework]
Czekałem na to cały czas, chociaż wsparcie jest podstawowe, działa w większości podstawowych scenariuszy interakcji z db. Ma również podstawową integrację Visual Studio.
AKTUALIZACJA http://dev.mysql.com/downloads/connector/net/ Począwszy od wersji 6.7, Connector / Net nie będzie już zawierał integracji MySQL dla Visual Studio. Ta funkcja jest teraz dostępna w osobnym produkcie o nazwie MySQL for Visual Studio, dostępnym za pomocą Instalatora MySQL dla systemu Windows (patrz http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.html ).
Sprawdź mój post na ten temat.
MySQL organizuje seminarium internetowe na temat EF za kilka dni ... Zajrzyj tutaj: http://www.mysql.com/news-and-events/web-seminars/display-204.html
edycja: To seminarium internetowe jest teraz dostępne pod adresem http://www.mysql.com/news-and-events/on-demand-webinars/display-od-204.html
Tu nie chodzi o stwardnienie rozsiane i czego oni chcą. Stworzyli * otwarty system dla innych, aby podłączyć „dostawców” - postgres i sqlite to mają - mysql jest po prostu laggin ... ale, dobra wiadomość dla zainteresowanych, ja też tego szukałem i odkryłem, że MySql Connector / Net 6.0 to będzie ... możesz to sprawdzić tutaj:
http://www.upfromthesky.com/blog/post/2009/03/24/MySql-Supports-the-Entity-Framework.aspx
Będziesz potrzebował dostawcy mapowania dla MySQL. Jest to dodatkowa rzecz, której potrzebuje Entity Framework, aby magia się wydarzyła. Ten blog mówi o innych dostawcach map, oprócz tych dostarczanych przez Microsoft. Nie znalazłem żadnych wzmianek o MySQL.
Vintana,
Oczywiście jest już coś gotowego. http://www.devart.com/products.html - chociaż jest komercyjny (masz 30-dniowy okres próbny IIRC). Tworzą żywe firmy zajmujące się pisaniem, więc myślę, że powinno być szybkie i stabilne. Wiem, że naprawdę duże firmy używają swojego dostawcy Oracle zamiast Orace i MS.
Uważaj, używając łącznika .net, łącznik 6.6.5 ma błąd, nie działa on na wstawianie wartości tinyint jako tożsamości, na przykład:
create table person(
Id tinyint unsigned primary key auto_increment,
Name varchar(30)
);
jeśli spróbujesz wstawić taki obiekt:
Person p;
p = new Person();
p.Name = 'Oware'
context.Person.Add(p);
context.SaveChanges();
Otrzymasz wyjątek Null Reference:
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()
Do tej pory nie znalazłem rozwiązania, musiałem zmienić swoją tożsamość malutkiego na niepodpisaną tożsamość int, to rozwiązało problem, ale nie jest to właściwe rozwiązanie.
Jeśli używasz starszej wersji Connector.net (użyłem 6.4.4), nie będziesz miał tego problemu.
Jeśli ktoś wie o rozwiązaniu, proszę o kontakt.
Twoje zdrowie!
Oware
Person p = new Person(){Name = "Oware"}; context.Person.Add(p); context.SaveChanges();
Możesz także spojrzeć na https://www.devart.com/dotconnect/mysql/
Złącze DevArt obsługuje EF i MySQL.
Nie widziałem linku tutaj, ale istnieje wersja beta .NET Connector dla MySql. Kliknij „Wersje rozwojowe”, aby pobrać wersję 6.3.2 beta, która ma integrację z EF4 / VS2010:
http://dev.mysql.com/downloads/connector/net/5.0.html#downloads
Jeśli chcesz uruchomić Entity Framework z MySql na mono / linux / macos, może to być pomocne https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac-os/