Blazor入门100天 : 身份验证和授权 (3) - DB改Sqlite

2023-05-16

目录

  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.
PM> 

重新生成的脚本

重新注册账号

如果运行后出错先跳过,直接导航到 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

image

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Blazor入门100天 : 身份验证和授权 (3) - DB改Sqlite 的相关文章

  • 在 SQLite 数据库的特定位置插入一行

    我正在 SQLite Manager 中创建数据库 并且错误地忘记提及一行 现在 我想在中间手动添加一行 在其下方 其余的自动增量键应自动增加 1 我希望我的问题很清楚 Thanks 您不应该关心键值 只需在末尾附加行即可 如果您确实需要这
  • Sqlite3 查询在 iOS 8.2 下变得非常慢

    我制作了一个可以在应用程序内使用 sqlite 数据库的应用程序 在 iOS 8 2 之前 它工作得很好 但更新后 查询方法的工作速度慢了大约 100 倍 我试图查找有关此问题的信息 但尚未找到任何信息 有人有同样的经历吗 这是我的方法 到
  • 从关键字后的文本中提取字符串

    我想从 SQL 字段中关键字后面的文本中提取内容 我有一个名为Description在表中 该字段的内容是 asdasf 关键字 狗 aeee 关键字 猫 ffffaa 关键词 狼 我想提取并保存 关键字 之后的文本 在本例中dog cat
  • 将 .sql 文件导入 SQLite

    我正在尝试将大型 sql 文件导入 SQLite db 文件 但出现以下错误 sqlite gt read smsCorpus en 2012 04 30 sql Error near line 23 near COMMENT syntax
  • 将数据库(例如 sqlite)与 cocos2d-x 一起使用

    我开始在 iPhone 上构建游戏应用程序 我正在使用 cocos2d x 游戏引擎 因为它很容易从那里移植到 Android 而且编码是用我非常熟悉的C 编写的 我想知道是否有办法在 cocos2d x 中使用任何数据库 虽然sqlite
  • Heroku 上的 Django 应用程序在一段时间后删除对象

    我编写了一个简单的 Django 问答论坛应用程序并将其部署在 Heroku 上 该网站的本地版本运行良好 但是 生产版本不会将问题 答案等存储超过几个小时 我决定坚持使用 Django 附带的 sqlite3 我预计该网站不会有太多流量
  • NuGet安装的Visual Studio 2012中的Sqlite在用于连接的数据源中不存在

    我有 Visual Studio 2012 Premium 并通过 NuGet Packages API 安装了 System Data SQLite x86 x64 我将所有可用的 SQLLite 引用添加到我的 WPF x86 Net
  • SQLite 更新很多行非常慢

    我相信我已经使用了很多方法来加速许多行的更新 但到目前为止没有任何帮助 我们正在开立交易 像这样 private SQLiteTransaction BeginTransaction SQLiteConnection connection
  • 将图像保存和检索到数据库的最佳方法

    寻求上述建议 希望创建一个 SQLite 数据库 其中每行数据主要是字符串 但我也想保存从手机拍摄的图像 是否建议或可能保存位图图像的编码 Base 64 字符串并在调用数据行时将其转换回图像 我还在某处读到有一个 blob 列类型可以保存
  • SQLite 性能基准 - 为什么 :memory: 这么慢...只有磁盘速度的 1.5 倍?

    为什么 sqlite 中的 memory 这么慢 我一直在尝试查看使用内存中的 sqlite 与基于磁盘的 sqlite 是否可以获得任何性能改进 基本上我想用启动时间和内存来换取非常快速的查询not在应用程序过程中击中磁盘 然而 以下基准
  • SQLite 查询查找主键

    在 SQLite 中 我可以运行以下查询来获取表中的列列表 PRAGMA table info myTable 这给了我列 但没有关于主键可能是什么的信息 此外 我可以运行以下两个查询来查找索引和外键 PRAGMA index list m
  • 将unix时间转换为字符串的Powershell函数?

    我正在尝试使用 ADO NET 和 PowerShell 读取 Firefox place sqlite datedase 的日期字段 显然这些字段是 Unix 时间的 我正在寻找 Net 日期时间或字符串的转换 Edit 我想将数据行绑定
  • 使 MudBlazor 表格的一行可点击?

    我用 MudBlazor 制作了这张桌子
  • 如何处理 SQLite 缺少的功能:禁用触发器?

    如何处理 SQLite 缺失的功能 disable triggers 我没有让它存储特定表的触发器名称 例如 我如何删除所有触发器 你会怎么办 现在已经是 2015 年了 SQLite 中仍然没有 禁用触发器 对于移动应用程序来说 这可能会
  • Blazor 和 Visual Studio 的 Intellisense - 某些 Blazor 组件引用显示为错误错误,直到您单击该文件

    当我在 Visual Studio 中打开 Blazor 解决方案时 Intellisense 将显示对 Blazor 组件的引用的错误错误 并将成功编译 例如 在我的许多课程中我注入ILogger
  • 如果变量更改发生在单独的线程上,Blazor 不会检测到变量更改

    在我的西装外套中 我放了 if cat IsMeowing div Cat is meowing div In my Cat类 我这样说 public bool IsMeowing get set false public void Meo
  • python sqlite3从excel创建数据库

    我正在尝试从 Excel 电子表格创建数据库 我有下面的代码 问题是当我运行代码时 我的数据库为每列创建一个表 我想为工作簿中列出的每个电子表格创建一个表格 工作表名称为工作表 1 和工作表 2 import sqlite3 import
  • 应用程序内的 SQLite 文件版本兼容性

    我有一个 C NET 应用程序 一种复杂的计算应用程序 其中用户输入数据 处理后的信息使用 JSON 序列化和 EF 保存到 SQLite 文件中 需要时可以将其加载到我们的应用程序中 应用程序在开发过程中经历了很多变化 类也被修改 因此
  • Android:创建具有关系的 SQLite 数据库

    我正在尝试创建一个需要具有一对多关系的两个表 SQLite 数据库的应用程序 基本上 第一个表将允许用户创建一名员工 当他们点击该员工时 他们将进入第二个活动 该活动将允许用户为该员工添加多个电话号码 这些电话号码存储在第二个表中 我真的不
  • EF Core 2.1 启动缓慢

    在获得了 EF6 的一些经验后 例如this https stackoverflow com questions 48441674 extremely slow ef startup 15 minutes 我想尝试一下 EF Core 因为

随机推荐

  • Linux常用软件包(常用命令)

    文章目录 Linux应用程序基础RPM包管理工具rpm命令的格式查询RPM软件包信息应用程序与系统命令的关系软件包的封装类型rpm软件包查询未安装的 RPM 软件包文件中信息安装 升级 卸载 RPM 软件包yum常用的操作命令 编译安装编译
  • KBQA的工作流程(基于检索的方法)

    KBQA的工作流程 基于检索的方法 图谱构建阶段 注 采用neo4j的方法进行建立图数据库 1 数据准备 结构化数据 例如mysql的关系型数据库 进行整理 导出为csv 半结构化数据 采用包装器技术 进行抽取 之后 进行清洗 文本数据 采
  • 可解压rar、zip且可打包7z的powershell命令

    安装模块 Install Module 7zip4powershell 为什么要使用7zip 1个原因是传统zip只支持最大2gb的文件 xff0c 而7zip支持 16 xff0c 000 xff0c 000TB大的文档 xff0c 另一
  • ubuntu18.04 systemd配置学习手册(1) --相关概念

    1 从init系统说起 Linux 操作系统的启动首先从 BIOS 开始 xff0c 接下来进入 boot loader xff0c 由 bootloader 载入内核 xff0c 进行内核初始化 内核初始化的最后一步就是启动 PID 为
  • ubuntu18.04 systemd配置学习手册(2) --具体使用

    转载 xff1a http www ruanyifeng com blog 2016 03 systemd tutorial part two html 1 开机启动 对于那些支持 Systemd 的软件 xff0c 安装的时候 xff0c
  • 建造者模式(Builder模式)详解

    在软件开发过程中有时需要创建一个复杂的对象 xff0c 这个复杂对象通常由多个子部件按一定的步骤组合而成 例如 xff0c 计算机是由 OPU 主板 内存 硬盘 显卡 机箱 显示器 键盘 鼠标等部件组装而成的 xff0c 采购员不可能自己去
  • 关于读取文件失败

    太久没遇上这个问题了 今天碰上刚好回顾一下 文件路径以及python语法中涉及到的反斜杠 转义符问题 xff0c 在python字符串中 有转义的含义 xff0c 如 t可代表TAB xff0c n代表换行 xff0c 所以我们需要采取一些
  • GKI改造原则、机制和方法

    Google在android11 5 4分支上开始要求所有下游厂商使用Generic Kernel Image xff08 GKI xff09 xff0c 需要将SoC和device相关的代码从核心内核剥离到可加载模块中 xff08 下文称
  • Blazor入门100天 : 身份验证和授权 (1) - 建立带身份验证工程

    目录 建立默认带身份验证 Blazor 程序角色 组件 特性 过程逻辑DB 改 Sqlite将自定义字段添加到用户表脚手架拉取IDS文件 本地化资源freesql 生成实体类 freesql 管理ids数据表初始化 Roles freesq
  • 黑屏定屏那些事 - 系统机制,分析套路和实战(系统篇)

    本文发表于内核工匠公众号 xff0c 旨在给内核开发的小伙伴分享 xff1a Android系统层面用户UI交互的设计 xff0c 从而理解手机黑屏定屏时背后的故事 Android系统对黑屏定屏类问题的维测思路 xff0c 有那些先进的思想
  • ArrayList和JSONArray边遍历边删除到底该怎么做

    话题看起来有点老生了 xff0c 但是加入JSONArray还是有很多新意 ArrayList 方式1 xff1a 索引遍历 List lt Integer gt list 61 new ArrayList lt gt list add 1
  • git 添加源地址和查看源地址

    git init 添加本地文件关联 git add commit 提交 git commit m 34 first commit 34 关联仓库 git remote add origin http git sfc com yuxang w
  • Python爬取淘宝商品数据,价值千元的爬虫外包项目

    前言 本文的文字及图片来源于网络 仅供学习 交流使用 不具有任何商业用途 如有问题请及时联系我们以作处理 PS xff1a 如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 完整代码可以点击下方链接获取 python免费学习资
  • AndroidStudio安装kotlin插件

    转载请注明出处 xff1a http blog csdn net feibendexiaoma article details 72625846 前言 2017 Google I O大会宣布将Kotlin语言作为安卓开发的一级编程语言 xf
  • Ubuntu20.04/Ubuntu22.04 配置VScode+Opencv+cmake(C++)

    Ubuntu20 04 Ubuntu22 04 配置VScode 43 Opencv 43 cmake xff08 C 43 43 xff09 下面介绍Ubuntu20 04下安装opencv xff0c 当然Ubuntu22 04也适用
  • Ubuntu-解决包依赖关系

    Ubuntu 解决包依赖关系的办法 安装软件包的时候 xff0c 有时会遇到类似下图的依赖问题 xff0c 无法正常安装 xff0c 下面提供三种方法解决依赖问题 1 可以尝试用下面方法处理依赖问题 xff0c 紧跟前一条安装命令后面输入下
  • Ubuntu 18.04系统进不去了,只有老内核的恢复模式还能进,请大家帮看一下

    Ubuntu 18 04 新内核和恢复模式进不去 xff0c 会报错 老内核也进不去 xff0c 只有老内核的恢复模式能进 xff0c 请大佬帮看一下 virtualbox里安装的是Ubuntu 18 04 1 LTS xff0c 打开id
  • Android Lottie动画的简单使用

    简介 在Android中做动画效果无非是以下几种方法 xff1a 普通动画帧动画属性动画通过改变LayoutParams布局参数来实现动画 现如今在Github上有一个比较火的动画库Lottie xff0c Github上关于Lottie库
  • java运行提示没有 org/slf4j/LoggerFactory 或者 log4j

    问题描述 Exception in thread main java lang NoClassDefFoundError org slf4j LoggerFactory 解决办法 在pom xml里面添加对应的配置 将jar包大包进去 lt
  • Blazor入门100天 : 身份验证和授权 (3) - DB改Sqlite

    目录 建立默认带身份验证 Blazor 程序角色 组件 特性 过程逻辑DB 改 Sqlite将自定义字段添加到用户表脚手架拉取IDS文件 本地化资源freesql 生成实体类 freesql 管理ids数据表初始化 Roles freesq