EntityFramework项目,改造一下从sqlserver运行到mysql上
程序员文章站
2022-05-05 13:21:48
...
写了一个Demo,本来是运行在sqlserver上的,突然想看能不能用mysql数据库,当然,不能直接使用,要进行一些改造:
1.首先是config文件中数据库连接字符串:
<add name="DBConnectionString" connectionString="Data Source=localhost;Port=3306; Initial Catalog=BasicOpt;Persist Security Info=True;User ID=root; Password=123456;Pooling=False;charset=utf8;MAX Pool Size=2000;Min Pool Size=1;Connection Lifetime=30;" providerName="MySql.Data.MySqlClient" />
2.手工在mysql中建立一个BasicOpt数据库。
3.NuGet安装EntityFramework(如果想使用中文包,可以安装EntityFramework.zh-Hans,会自动把EntityFramework也安装了),还有mysql要使用的 MySql.Data 和 Mysql.Data.Entity ,这里要注意版本的依赖项:
3.在DbContext子类上,要加 [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))],说明用mysql的配置
4.代码改造完成le了,可以 Enable-Migrations -force 了,如果没有问题,可以 Update-Database,这时候可能会报错:
这个是因为在sqlserver上做过迁移,已经生成了迁移文件,而里面生成字段的规则不适用mysql:
解决办法:
1.打开mysql,找到数据库,删除所有表
2.把老的Migration文件删掉
3.在Nuget中输入 Add-Migration 'xxx' -Force, xxx是你起的名字,最终的文件名为 当前时间_xxx.cs,这个文件用于update数据库的。
4.输入update-database,回车
这样就可以运行在mysql上了
我也是初学者,请指教。
上一篇: 协议