it-swarm-ru.tech

Использование MySQL с Entity Framework

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

266
vintana

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

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

UPDATEhttp://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 ).

191
Vin
22
pattersonc

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

10
Sir Code-A-Lot

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

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

7
bbqchickenrobot

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

5
Lars Truijens

Vintana,

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

2
aaimnr

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

1
Kasey Speakman

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

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

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

1
scotru

Я не видел ссылку здесь, но есть бета-версия .NET Connector для MySql. Нажмите "Development Releases", чтобы загрузить бета-версию 6.3.2 с интеграцией EF4/VS2010:

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

0
Brian Frantz

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

0
Igor Yalovoy