根据朋友的建议,现在做的.net core的数据库改成Mysql,这样跨平台方便的,比较ms sql server在其他平台下跑很麻烦。


asp.net core 连接 MySql只需要安装Mysql官方的connect就可以了,但是,直接生成默认的Identify的时候,有几个表无法创建,需要用到数据迁移的Migrations和第三方的内容。


新建一个asp.net core web项目

asp.net core 2.0 + MySql 8 创建默认数据表_sql


注意,要选择2.0,2.1版本现在会报错。

asp.net core 2.0 + MySql 8 创建默认数据表_asp.net_02


创建成功以后,打开Nuget

asp.net core 2.0 + MySql 8 创建默认数据表_sql_03


添加Pomelo.EntityFrameworkCore.Mysql。虽然MySql官方也提供了类似的工具,但是,居然有错。

asp.net core 2.0 + MySql 8 创建默认数据表_asp.net_04


添加完以后的情形

asp.net core 2.0 + MySql 8 创建默认数据表_数据迁移_05


修改数据库连接

asp.net core 2.0 + MySql 8 创建默认数据表_数据迁移_06


修改Startup.cs里的设置,将UseSqlServer改成UseMySql

asp.net core 2.0 + MySql 8 创建默认数据表_asp.net_07


删除Data目录下的Migrations目录,可能不删也行,因为对数据迁移的Migrations不熟悉,所以,还是删了。

asp.net core 2.0 + MySql 8 创建默认数据表_数据迁移_08


打开程序包管理器控制台

asp.net core 2.0 + MySql 8 创建默认数据表_数据迁移_09

就是下面这个

asp.net core 2.0 + MySql 8 创建默认数据表_数据迁移_10


输入Add-Migration MyFirstMigration

asp.net core 2.0 + MySql 8 创建默认数据表_asp.net_11


会在根目录添加一个Migrations目录

asp.net core 2.0 + MySql 8 创建默认数据表_sql_12


再在控制台输入Update-Database,这时候就会创建表。在这里如果出错,多半是因为包不足或者版本太高之类的问题

asp.net core 2.0 + MySql 8 创建默认数据表_asp.net_13


这时,MySql数据库的表就建好了。

asp.net core 2.0 + MySql 8 创建默认数据表_数据迁移_14


另外,mysql8好像添加了新的密码方式,保险起见,安装的时候选传统的那个

asp.net core 2.0 + MySql 8 创建默认数据表_sql_15


如果只是连接,应该是安装官方给定的这两个就可以了。

asp.net core 2.0 + MySql 8 创建默认数据表_数据迁移_16