Не могу найти что-либо релевантное о Entity Framework / MySQL в Google, поэтому я надеюсь, что кто-то знает об этом.
Не могу найти что-либо релевантное о Entity Framework / MySQL в Google, поэтому я надеюсь, что кто-то знает об этом.
Ответы:
Это было выпущено - Получите соединитель MySQL для .Net v6.5 - это имеет поддержку [Entity Framework]
Я ждал этого все время, хотя поддержка является базовой, работает для большинства базовых сценариев взаимодействия с БД. Он также имеет базовую интеграцию Visual Studio.
ОБНОВЛЕНИЕ http://dev.mysql.com/downloads/connector/net/ Начиная с версии 6.7, Connector / Net больше не будет включать интеграцию MySQL для Visual Studio. Эта функциональность теперь доступна в отдельном продукте MySQL для Visual Studio, доступном с помощью установщика MySQL для Windows (см. Http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.html ).
Проверьте мой пост на эту тему.
MySQL организует вебинар по EF через несколько дней ... Смотрите здесь: http://www.mysql.com/news-and-events/web-seminars/display-204.html
Изменить: этот вебинар в настоящее время на http://www.mysql.com/news-and-events/on-demand-webinars/display-od-204.html
Дело не в РС, а в том, что они хотят. Они создали * открытую систему для других, чтобы подключить «провайдеров» - у postgres и sqlite - mysql - это просто лаг ... но, хорошая новость для заинтересованных, я тоже искал это и обнаружил, что MySql Connector / Net 6.0 будет иметь это ... вы можете проверить это здесь:
http://www.upfromthesky.com/blog/post/2009/03/24/MySql-Supports-the-Entity-Framework.aspx
Вам потребуется картографический поставщик для MySQL. Это дополнительная вещь, необходимая Entity Framework для того, чтобы волшебство произошло. Этот блог рассказывает о других картографических провайдерах, помимо того, который поставляет Microsoft. Я не нашел никаких упоминаний о MySQL.
Vintana,
Конечно, сейчас кое-что готово. http://www.devart.com/products.html - хотя он и коммерческий (у вас есть 30-дневная пробная версия IIRC). Они зарабатывают на жизнь написанием провайдеров, поэтому я думаю, это должно быть быстро и стабильно. Я знаю действительно большие компании, использующие своего провайдера Oracle вместо Orace и MS.
Будьте осторожны при использовании соединителя .net, в соединителе 6.6.5 есть ошибка, она не работает для вставки значений tinyint в качестве идентификатора, например:
create table person(
Id tinyint unsigned primary key auto_increment,
Name varchar(30)
);
если вы попытаетесь вставить объект, как это:
Person p;
p = new Person();
p.Name = 'Oware'
context.Person.Add(p);
context.SaveChanges();
Вы получите исключение нулевой ссылки:
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()
До сих пор я не нашел решения, мне приходилось менять свою идентификацию tinyint на unsigned int identity, это решало проблему, но это не правильное решение.
Если вы используете более старую версию Connector.net (я использовал 6.4.4), у вас не будет этой проблемы.
Если кто-то знает о решении, пожалуйста, свяжитесь со мной.
Ура!
Oware
Person p = new Person(){Name = "Oware"}; context.Person.Add(p); context.SaveChanges();
Вы также можете посмотреть на https://www.devart.com/dotconnect/mysql/
Разъем DevArt поддерживает EF и MySQL.
Я не видел ссылку здесь, но есть бета-версия .NET Connector для MySql. Нажмите «Development Releases», чтобы загрузить бета-версию 6.3.2 с интеграцией EF4 / VS2010:
http://dev.mysql.com/downloads/connector/net/5.0.html#downloads
Если вы заинтересованы в запуске Entity Framework с MySql на mono / linux / macos, это может быть полезно https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac-os/