环境准备:
1、VS 2022 免费社区版
开工: 先实现 EF Core + MySQL + Identity
创建新项目 -> ASP.NET Core Web 应用 (MVC)
可以先不勾选Docker,后面再加,但是要用Identity 就需要勾上 配置HTTPS , 并选择身份验证类型为: 个人账户
默认情况下,是连接的本地SQLite数据库;
通过NuGet 安装 Pomelo.EntityFrameworkCore.MySql
修改 appsettings.json中 DefaultConnection 字符串,指向 Azure MySql
{ "ConnectionStrings": { "DefaultConnection": "Server=xxxxxdb.mysql.database.chinacloudapi.cn; Port=3306; Database={your_database}; Uid=dbadmin@xxxxxdb; Pwd={your_password}; SslMode=Preferred;" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*" }
修改 Program.cs中 builder.Services.AddDbContext ,如下红色字部分:
builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseMySql(connectionString, new MySqlServerVersion(new Version(5, 7, 19)))); builder.Services.AddDatabaseDeveloperPageExceptionFilter();
准备开始数据库迁移,先进行一次编译,按F6 进行编译;
删除原先的 Migrations 目录:
再用MySQL Workbench客户端先连上Azure MySql 数据库看是空了,没有一个表:
最后通过 程序包管理器控制台 来生成数据库迁移 及 执行数据库迁移:
再通过MySQL Workbench客户端刷新后看看:
至此,Identity默认格式的 role 、user 等基础表就创建好了;
跑起来看一下:
点右上角Register 按钮: 输入email和两次密码:
进入Confirm页面,点击 Click here to confirm your account:
email确认页面,这个页面是个壳子,以后根据需要可以完善,用户注册后,需要通过邮箱里收到的号码进行确认:
以上结束后,点右上角Login,试着 登录看一下:
完美,爱死 Identity了,一句代码不写,一个基本应用的用户注册就搭好了:
用MySQL客户端看下数据库User表: