1. 建立默认带身份验证 Blazor 程序
  2. 角色/组件/特性/过程逻辑
  3. DB 改 Sqlite
  4. 将自定义字段添加到用户表
  5. 脚手架拉取IDS文件,本地化资源
  6. freesql 生成实体类,freesql 管理ids数据表
  7. 初始化 Roles,freesql 外键 => 导航属性
  8. 完善 freesql 和 bb 特性

https://github.com/densen2014/Blazor100/tree/Blazor-%E6%95%99%E7%A8%8B15-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.
重新生成的脚本

重新注册账号

如果运行后出错先跳过,直接导航到 https://localhost:7011/Identity/Account/Register 页面注册
EmailPasswordConfirm Password
test@app.com000000000000
user@app.com000000000000

自动生成的数据库文件

https://github.com/densen2014/Blazor100/tree/Blazor-%E6%95%99%E7%A8%8B15-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,不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

本文来自博客园,作者:周创琳 AlexChow,转载请注明原文链接.

AlexChow

今日头条 | 博客园 | 知乎 | Gitee | GitHub

目录建立默认带身份验证 Blazor 程序角色/组件/特性/过程逻辑DB 改 Sqlite将自定义字段添加到用户表脚手架拉取IDS文件,本地化资源freesql 生成实体类,freesql 管理ids数据表初始化 Roles,freesql 外键 => 导航属性完善 freesql 和 bb 特性
LiteDB for Blazor-WebAssembly 该存储库在客户端(WebAssembly)包含一些关于LiteDB和ASP.NET Blazor的很棒的测试。 这不是最终产品! (然而 :grinning_face_with_smiling_eyes: ) LiteDB.WebAssembly将具有主要更新的LiteDB v5.1分支派生出来,以启动wasm的较小版本和重点版本。 此版本中删除了一些LiteDB(也许可以在将来使用)。 Blazor使用WebAssembly在浏览器中运行。 浏览器中没有磁盘访问权限,因此所有数据都将存储在IndexedDB和/或LocalStorage 。 每个域只能使用一个数据库,并且只能进行异步读/写操作。 所有锁将被删除,并且不支持并发或事务(仅排他锁)。 所有方法都转换为异步并具有Async后缀。 同样,此版本需要在使用数据库之前运行以await OpenAsync() 。
使用 net core blazor 连接sqlite数据库,这是一个例子,使用了相对简单的实现方式。主要目的是尝试将以前的webform的代码在blazor下是否使用,其实网上讲的很多使用blazor的课都将的发比较深,而且使用了先进的语法和异步,其实blazor 支持很多以前的webform 的开发方式,比如三层构架,比如不使用框架连接数据库。 还有就是对于之前使用webform的,应该首先学习 blazor 服务端方式,这个是比较好实现全栈开发的。 也希望net的高手多讲解一些 blazor服务端的实现方式,给那些 传统行业是开发者可以简单实现一些更能的方式。不忘初心。简单才是美。
技术杂谈,聚焦优质文章、开源项目、实用工具和学习、工作、面试心得分享。博客园推荐博客、阿里云专家博主,擅长于C#、.NET、.NET Core、Golang、TypeScript、Vue、Uni App、Angular开发。 02-01
1.基于 .net 5开发的后台管理系统,前后台分离,api 是基于Furion 框架开发,前端是基于ant-design-blazor开发2.sqlite+SqlServer数据库3.权限控制,api监听 (项目为gitee上的开源项目)