268

在 Google 上找不到任何有关 Entity Framework/MySQL 的信息,所以我希望有人知道。

4

10 回答 10

192

它已发布 - 获取.Net v6.5 的 MySQL 连接器- 这支持 [Entity Framework]

我一直在等待这个,虽然支持是基本的,但适用于数据库交互的大多数基本场景。它还具有基本的 Visual Studio 集成。

更新 http://dev.mysql.com/downloads/connector/net/ 从 6.7 版开始,Connector/Net 将不再包含 MySQL for Visual Studio 集成。该功能现在可在名为 MySQL for Visual Studio 的单独产品中使用,该产品可使用 Windows 的 MySQL 安装程序(请参阅http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.html)。

于 2009-05-11T15:02:03.860 回答
21

看看我关于这个主题的帖子。

http://pattersonc.com/blog/index.php/2009/04/01/using-mysql-with-entity-framework-and-aspnet-mvc-–-part-i/

于 2009-04-03T03:12:49.863 回答
10

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

于 2008-09-28T13:20:23.440 回答
7

这与 MS 和他们想要的无关。他们为其他人创建了一个*开放系统以插入“提供者”-postgres 和 sqlite 拥有它-mysql 只是滞后...但是,对于那些感兴趣的人来说是个好消息,我也在寻找这个并发现 MySql 连接器/Net 6.0 将拥有它...您可以在这里查看:

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

于 2009-03-25T00:27:54.253 回答
5

您将需要 MySQL 的映射提供程序。这是 Entity Framework 需要额外的东西才能让魔法发生。这篇博客讨论了除了微软提供的地图供应商之外的其他地图供应商。我还没有发现任何关于 MySQL 的提及。

于 2008-09-16T20:32:12.913 回答
2

文塔纳,

奇怪的是,现在有些东西已经准备好了。http://www.devart.com/products.html - 虽然它是商业的(你有一个 30 天的试用 IIRC)。他们以写作提供者为生,所以我想它应该又快又稳定。我知道真正的大公司使用他们的 Oracle 供应商而不是 Orace 和 MS 供应商。

于 2009-11-06T11:36:00.397 回答
1

您还可以查看https://www.devart.com/dotconnect/mysql/

DevArt 的连接器支持 EF 和 MySQL。

于 2011-06-05T07:20:19.113 回答
1

小心使用连接器 .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 身份,这解决了问题,但这不是正确的解决方案。

如果您使用较旧版本的 Connector.net(我使用的是 6.4.4),则不会出现此问题。

如果有人知道解决方案,请与我联系。

干杯!

尾件

于 2013-04-27T15:58:36.573 回答
0

我没有看到这里的链接,但是有一个用于 MySql 的 beta .NET 连接器。点击“Development Releases”下载6.3.2 beta,集成EF4/VS2010:

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

于 2010-07-13T18:32:47.210 回答
0

如果您有兴趣在 mono/linux/macos 上使用 MySql 运行实体框架,这可能会有所帮助 https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac-os/

于 2015-04-07T09:09:54.580 回答