在谷歌上找不到有关Entity Framework/MySQL的相关信息,希望有人了解。
在谷歌上找不到有关Entity Framework/MySQL的相关信息,希望有人了解。
请查看我关于这个主题的文章。
MySQL在未来几天将主办有关实体框架的网络研讨会...请点击这里: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
你需要为MySQL提供一个映射提供程序。这是Entity Framework需要的额外内容,以实现其魔力。 这篇博客谈到了除微软提供的映射提供程序之外的其他映射提供程序,但我没有找到任何关于MySQL的提及。
Vintana,
当然现在有一些已经准备好的东西了。 http://www.devart.com/products.html - 这是商业产品(你可以试用30天)。他们以编写提供程序为生,所以我想它应该很快速和稳定。我知道真正大的公司使用他们的Oracle提供程序而不是Oracle和微软的提供程序。
使用Connector .net时要小心,Connector 6.6.5存在一个bug,无法将tinyint值作为identity插入,例如:
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),则不会出现此问题。
如果有人知道解决方案,请与我联系。
干杯!
Oware
Person p = new Person(){Name = "Oware"}; context.Person.Add(p); context.SaveChanges();
- Dave我在这里没有看到链接,但是有一个用于MySql的beta .NET连接器。点击“开发版本”下载6.3.2 beta版,其中包含EF4/VS2010集成:
http://dev.mysql.com/downloads/connector/net/5.0.html#downloads
如果你有兴趣在 mono/linux/macos 上运行 Entity Framework 和 MySql,这篇文章可能会对你有所帮助 https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac-os/