0%

.net core环境中基于mysql的code first

暑假里切换到mac系统,所以想了解一下用.net core做跨平台的开发。因为数据库不能用sql server了,所以就用mysql,还有以前做开发的时候觉得code first不错,所以这次的目标还是code first。ide还是用visual studio for mac 2017。

首先,创建一个asp.net core web app,选择使用mvc的模板。

其次,创建model、view与controller这个没有什么不同。

接下去要设置成mysql的数据就稍微要注意点了。

首先,在appsettings.json中添加数据库连接字符串ConnectionStrings:

1
2
3
4
"ConnectionStrings": {
"SQLTestContext": "Data Source=localhost;port=3306;Initial Catalog=数据库名;user id=登录名;password=密码;"
},

接着要依次添加相关引用,需要从nuget中获取:

Microsoft.EntityFrameworkCore;

Microsoft.EntityFrameworkCore.Tools;

Pomelo.EntityFrameworkCore.MySql。

最后,在Startup.cs中添加相关代码:

1
2
3
4
5
6
7
8
9

public void ConfigureServices(IServiceCollection services)
{
//自定义数据库连接字符串,code first必备,注意这里的UseMySql,还可以有UseSqlite等
services.AddDbContext<SQLTestContext>(options => options.UseMySql(Configuration.GetConnectionString("SQLTestContext")));

services.AddMvc();
}

在以前的code first实践中,如果这样设置好了,就可以了。但是在这里我发现,如果就这样运行,就会提示数据库不存在的。所以,我又进一步做了以下几件事(在nuget的程序包管理器控制台中运行,不过在mac版中没找到这个,我是在windows下完成下述命令的):

1.Add-Migration InitModel

2.Update-DataBase –verbose

这样mysq中就有相应的数据库了,后面的工作就顺理成章了。