宁波外贸网站推广优化企业备案域名
web/
2025/10/8 20:42:38/
文章来源:
宁波外贸网站推广优化,企业备案域名,网站建设目的及功能定位,仙桃市住房建设局网站1. 引言
Abp支持MySql已经不是什么新鲜事了#xff0c;但按照官方文档#xff1a;Entity Framework - MySql Integration来#xff0c;你未必能成功切换#xff0c;本文就记录下切换MySql数据库遇到的一些坑#xff0c;供后人乘凉#xff01;
2. 环境准备
MySql数据库…1. 引言
Abp支持MySql已经不是什么新鲜事了但按照官方文档Entity Framework - MySql Integration来你未必能成功切换本文就记录下切换MySql数据库遇到的一些坑供后人乘凉
2. 环境准备
MySql数据库好啊开源免费不再像SqlServer那样累赘。而且结合.Net Core他俩贼般配的说但MySql自从卖给Oracle后好像就不怎么好玩了安装起来还是挺费劲的说。一怒之下转投MariaDB。 MariaDB由MySQL之父Michael Widenius主导开发的他早前曾以10亿美元的价格将自己创建的公司MySQL AB卖给了SUN此后随着SUN被甲骨文收购MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。MariaDB是目前最受关注的MySQL数据库衍生版也被视为开源数据库MySQL的替代品。 MariaDB完全兼容MySql所以就放一百二十个心好了。就不废话了自行点击MariaDB Downloads 下载安装吧。
3.开始切换环境
本文还是基于我之前的LearningMpaAbpDemo进行演示。
3.1. 安装MySql.Data.Entity
Solution--右键--Manage NuGet Packages for solution...安装MySql.Data.Entity到以”.Web和“.EntityFramework”结尾的项目中去如下图 MySql.Data.Entity
注意版本号安装最新我可不保证可以成功 修改“.EntityFramework”结尾的项目Migrations文件夹下的Configuration.cs类在构造函数中添加SetSqlGenerator(MySql.Data.MySqlClient, new MySql.Data.Entity.MySqlMigrationSqlGenerator());。如下所示 3.2. 设置连接字符串
修改Web.Config添加连接字符串add nameDefault connectionStringserverlocalhost;port3306;databasesampledb;uidroot;password*** providerNameMySql.Data.MySqlClient/ 之前的连接字符串就注释掉吧
3.3. 重新添加迁移
如果你的Migrations文件夹下有很多以日期开头比如20171122022_的迁移文件全部删掉他们 然后Tools--Nuget Package Manage-- Package Manage Console输入Add-Migration Abp_MoveTo_Mysql执行 进行迁移 是的你可能执行不成功会遇到第一个坑 Type is not resolved for member MySql.Data.MySqlClient.MySqlException,MySql.Data, Version6.9.10.0, Cultureneutral, PublicKeyTokenc5687fc88969c44d. 如何搞呢下载MySql为.Net平台提供的Connector安装就好了安装地址Download Connector/Net。记住要选对对应的版本 6.9.10 安装后重新执行以上命令即可。
3.4. 执行迁移
执行命令Update-Database -Verbose这个时候你会遇到第二个坑 Index column size too large. The maximum column size is 767 bytes. 这是因为mysql对列的大小有限制。EF6使用MigrationHistory表跟踪模式的变化以确保一致性的数据库模式和概念模式。由于主键太大默认情况下此表不适合MySQL。要解决这种情况需要缩小该表的键大小。具体可以参考以下两个链接
Entity Framework with MySql and Migrations failing because “max key length is 767 bytes”Entity Framework 6 Support
这边有个简单的做法只需修改DbContext类上添加[DbConfigurationType(typeof(MySqlEFConfiguration))]声明即可。如下 重新执行迁移命令即可
4. 最后
好久没更新了现在重拾Abp后续会结合ABP.Net CoreMySQL带给大家进阶分享尽情期待 作者圣杰 链接https://www.jianshu.com/p/543e34da16a7 来源简书 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89257.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!