Не можу знайти щось релевантне про Entity Framework / MySQL в Google, тому я сподіваюся, що хтось про це знає.
Не можу знайти щось релевантне про Entity Framework / MySQL в Google, тому я сподіваюся, що хтось про це знає.
Відповіді:
Випущено - Отримайте роз'єм MySQL для .Net v6.5 - у ньому є підтримка [Entity Framework]
Я чекав цього весь час, хоча підтримка є базовою, працює для більшості базових сценаріїв взаємодії db. Він також має базову інтеграцію Visual Studio.
ОНОВЛЕННЯ http://dev.mysql.com/downloads/connector/net/ Починаючи з версії 6.7, Connector / Net більше не включатиме інтеграцію MySQL для Visual Studio. Ця функціональність тепер доступна в окремому продукті під назвою MySQL для Visual Studio, доступному за допомогою програми MySQL Installer для 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
Вінтана,
Звичайно, зараз щось готове. http://www.devart.com/products.html - хоча це комерційно, хоча (у вас є 30-денний пробний IIRC). Вони заробляють на життя провайдерами писемності, тож я думаю, що це повинно бути швидким і стабільним. Я знаю справді великі компанії, які використовують свого постачальника Oracle замість Orace та MS.
Будьте обережні, використовуючи connector .net, Connector 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()
До цих пір я не знайшов рішення, мені довелося змінити свою крихітну ідентичність на непідписану int ідентичність, це вирішило проблему, але це не правильне рішення.
Якщо ви використовуєте старішу версію Connector.net (я використовував 6.4.4), у вас не виникне цієї проблеми.
Якщо хтось знає про рішення, зв'яжіться зі мною.
Ура!
Обізнаний
Person p = new Person(){Name = "Oware"}; context.Person.Add(p); context.SaveChanges();
Ви також можете подивитися на https://www.devart.com/dotconnect/mysql/
Роз'єм DevArt підтримує EF та MySQL.
Я не бачив посилання тут, але є бета .NET Connector для MySql. Натисніть "Релізи для розробки", щоб завантажити версію 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/