Blazor入门100天 : 身份验证和授权 (3) - DB改Sqlite
目录
- 建立默认带身份验证 Blazor 程序
- 角色/组件/特性/过程逻辑
- DB 改 Sqlite
- 将自定义字段添加到用户表
- 脚手架拉取IDS文件,本地化资源
- freesql 生成实体类,freesql 管理ids数据表
- 初始化 Roles,freesql 外键 => 导航属性
- 完善 freesql 和 bb 特性
本节源码
https://github.com/densen2014/Blazor100/tree/Blazor-教程15-3/b15blazorIDS
引用 EntityFrameworkCore.Sqlite 库
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="7.0.2" />
配置文件加入Sqlite数据库链接
appsettings.json
文件加入一行代码 "IdsSQliteConnection": "Data Source=ids.db;"
最终文件如下
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-b15blazorIDS-f969184b-89a5-4ccf-beeb-911a756ae70a;Trusted_Connection=True;MultipleActiveResultSets=true",
"IdsSQliteConnection": "Data Source=ids.db;"
},
...
}
使用EF Sqlite 配置
Program.cs
文件
//EF SqlServer 配置
// Add services to the container.
//var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
//builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(connectionString));
//EF Sqlite 配置
builder.Services.AddDbContext<ApplicationDbContext>(o => o.UseSqlite(builder.Configuration.GetConnectionString("IdsSQliteConnection")));
重新生成 Migrations 脚本
之前版本是基于localdb,如果不换脚本会出现An error occurred applying migrations, try applying them from the command line
错误
删除 Migrations 文件夹
可选: 保留sqlserver的Migrations脚本, 使用 从项目中排除 菜单
创建新迁移并为其生成 SQL 脚本
打开命令行, VS菜单栏=>工具=>Nuget包管理器=>程序包管理器控制台(Packge Manager Console), 执行以下命令
cd b15blazorIDS
dotnet ef migrations add idsSqlite
dotnet ef database update
完整流程
PM> cd b15blazorIDS
PM> dotnet ef migrations add idsSqlite
Build started...
Build succeeded.
Done. To undo this action, use 'ef migrations remove'
PM> dotnet ef database update
Build started...
Build succeeded.
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (7ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT COUNT(*) FROM "sqlite_master" WHERE "name" = '__EFMigrationsHistory' AND "type" = 'table';
...
Done.
PM>
重新生成的脚本
重新注册账号
如果运行后出错先跳过,直接导航到 https://localhost:7011/Identity/Account/Register
页面注册
Password | Confirm Password | |
---|---|---|
test@app.com | 000000 | 000000 |
user@app.com | 000000 | 000000 |
自动生成的数据库文件
本节源码
https://github.com/densen2014/Blazor100/tree/Blazor-教程15-3/b15blazorIDS
源代码
https://github.com/densen2014/Blazor100
https://gitee.com/densen2014/Blazor100 (镜像/非最新版)
关联项目
FreeSql QQ群:4336577
BA & Blazor QQ群:795206915
Maui Blazor 中文社区 QQ群:645660665
知识共享许可协议
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名AlexChow(包含链接: https://github.com/densen2014 ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系 。
转载声明
本文来自博客园,作者:周创琳 AlexChow,转载请注明原文链接:https://www.cnblogs.com/densen2014/p/17083934.html