Использование MySQL с Entity Framework - PullRequest
266 голосов
/ 17 сентября 2008

Не могу найти что-либо релевантное о Entity Framework / MySQL в Google, поэтому я надеюсь, что кто-то знает об этом.

Ответы [ 11 ]

191 голосов
/ 11 мая 2009

Это было выпущено - получите MySQL коннектор для .Net v6.5 - здесь есть поддержка [Entity Framework]

Я ждал этого все время, хотя поддержка является базовой, работает для большинства базовых сценариев взаимодействия с БД. Он также имеет базовую интеграцию Visual Studio.

UPDATE 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).

22 голосов
/ 03 апреля 2009
10 голосов
/ 28 сентября 2008

MySQL проводит вебинар об EF через несколько дней ... Смотрите здесь: http://www.mysql.com/news-and-events/web-seminars/display-204.html

edit: Этот вебинар сейчас на http://www.mysql.com/news-and-events/on-demand-webinars/display-od-204.html

7 голосов
/ 25 марта 2009

Речь идет не о MS, а о том, что они хотят. Они создали * открытую систему для других, чтобы подключить «провайдеров» - у postgres и sqlite - mysql - это просто лаг ... но, хорошая новость для заинтересованных, я тоже искал это и обнаружил, что MySql Connector / Net 6.0 будет иметь это ... вы можете проверить это здесь:

http://www.upfromthesky.com/blog/post/2009/03/24/MySql-Supports-the-Entity-Framework.aspx

5 голосов
/ 17 сентября 2008

Вам потребуется картографический поставщик для MySQL. Это дополнительная вещь, необходимая Entity Framework для того, чтобы волшебство произошло. В этом блоге говорится о других провайдерах картографирования, помимо того, который поставляет Microsoft Я не нашел никаких упоминаний о MySQL.

2 голосов
/ 06 ноября 2009

Vintana,

Конечно, сейчас кое-что готово. http://www.devart.com/products.html - это коммерческая версия (у вас есть пробная версия IIRC на 30 дней). Они зарабатывают на жизнь написанием провайдеров, поэтому я думаю, это должно быть быстро и стабильно. Я знаю действительно крупные компании, использующие своего провайдера Oracle вместо Orace и MS.

1 голос
/ 27 апреля 2013

Будьте внимательны при использовании соединителя .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

1 голос
/ 05 июня 2011

Вы также можете посмотреть на https://www.devart.com/dotconnect/mysql/

Разъем DevArt поддерживает EF и MySQL.

1 голос
/ 30 ноября 2009

В этом руководстве по MySQL показано, как создавать и использовать объекты EF в качестве источника данных для элемента управления.

0 голосов
/ 07 апреля 2015

Если вы заинтересованы в запуске Entity Framework с MySql на mono / linux / macos, это может быть полезно https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac-os/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...