c# – 带有EntityFramework 6架构错误0040的MySql 5.6
我有一个使用EF6代码的ASP.NET MVC站点,它可以完美地对抗MS SQL Server(在本地开发机器和Azure网站/ SQL上).现在我将它转移到使用MySql 5.6 DBS的生产中,这给我带来了麻烦. 我的解决方案分为多个层(Web,视图模型,模型,数据层接口),这些层是持久性无知的(使用UnitOfWork和GenericRepository)和引用EF程序集的单个数据项目. 现在我想我会将我的解决方案交换机EF提供程序从SQL Server分支到MySql.
MySql Connector / Net版本是MySql.Data 6.8.3.0 我还将[DbConfigurationType(typeof(DbContextConfiguration))]添加到我的DbContext类和SetExecutionStrategy(MySqlProviderInvariantName.ProviderName,()=> new MySqlExecutionStrategy());到我的DbContextConfiguration类继承自MySqlEFConfiguration 我能够运行我的代码优先迁移(借助SetHistoryContextFactory(MySqlProviderInvariantName.ProviderName,(conn,schema)=> new MySqlHistoryContext(conn,schema));)并创建数据库模式. 据我所知,数据库模式似乎是正确的. SQL Server中nvarchar的列是longtext或varchar(取决于实体属性上指定的最大长度),MySql和datetime2中的列是datetime. 现在,当我运行应用程序时,我收到以下异常:
请注意
我在我的智慧结束.无法弄清楚如何处理此问题或如何使EF与MySql提供程序正常工作.在SO或Web上一般没有任何用处.我发现的所有内容都与http://forums.devart.com/viewtopic.php?t=24678上的Oracle DBS类似 我会感激任何想法.我开始认为移动到NHibernate会更好,如果我知道它会解决这个问题 – 我想知道问题是否与EF如何映射实体并生成SQL语句或MySql提供者/连接器中的一些错误有关. 最佳答案 如果为SQL Server创建了迁移,然后将引擎更改为MySQL并尝试更新数据库,则会出现此问题.我修正了:>删除所有迁移类 配置文件需要这个:
|
- Mysql必读mysql 启动错误1067 问题及解决方法
- mysql group by逗号分隔值
- Mysql学习windows和linux安装mysql后启用日志管理功能的方法
- php-获取2个数组之间的差
- MYSQL教程MySQL重置root密码提示"Unknown column ‘pas
- IBATIS2.0映射文件 oracle/mysql 版实现示例,功能全面且丰
- PHP – 在多维数组中存储mysql_fetch_assoc
- MYSQL数据库MySQL中使用or、in与union all在查询命令下的效
- 查询数据库实例信息
- Mysql实例insert into … on duplicate key update / repla