在Google上找不到与Entity Framework / MySQL相关的任何内容,因此我希望有人对此有所了解。
在Google上找不到与Entity Framework / MySQL相关的任何内容,因此我希望有人对此有所了解。
Answers:
它已发布-获取适用于.Net v6.5的MySQL连接器 -该产品支持[Entity Framework]
我一直在等待,尽管支持是基本的,但适用于大多数数据库交互的基本方案。它还具有基本的Visual Studio集成。
更新 http://dev.mysql.com/downloads/connector/net/ 从6.7版开始,Connector / Net将不再包括用于Visual Studio集成的MySQL。现在,该功能可在单独的名为MySQL for Visual Studio的产品中使用,该产品可使用Windows的MySQL安装程序提供(请参见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
这与MS及其他们想要的无关。他们为其他人创建了一个*开放系统来插入“提供者”-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。
使用连接器.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();
您将获得一个Null引用异常:
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),则不会出现此问题。
如果有人知道解决方案,请与我联系。
干杯!
Oware
Person p = new Person(){Name = "Oware"}; context.Person.Add(p); context.SaveChanges();
您可能还会查看https://www.devart.com/dotconnect/mysql/
DevArt的连接器支持EF和MySQL。
我没有在此处看到链接,但是有一个用于MySql的beta .NET连接器。单击“开发版本”以下载具有EF4 / VS2010集成的6.3.2 beta:
http://dev.mysql.com/downloads/connector/net/5.0.html#downloads
如果您有兴趣在mono / linux / macos上使用MySql运行Entity Framework,这可能会有所帮助 https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac-os/