一、使用 NuGet 添加引用 Microsoft.EntityFrameworkCore.Sqlite、Microsoft.EntityFrameworkCore.Tools
二、创建实体:为使用方便,在项目中创建 Entity 文件夹,存放“实体”文件、数据“上下文”文件、“全局引用”文件
namespace BlazorWebAppWithBB.Entity;
/* 与 工厂模式 相比,不需要在 Program.cs 中添加到工厂中、razor 文件中不需要注入操作。
* 优点:使用简单。
* 缺点:数据库相关信息与数据上下文定义在一起,后期更换数据库麻烦。*/
public class MyAppDbContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
//指定数据库配制信息:数据库类型(SQLite)、数据库名称(SQLiteFile.db)。
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
//使用SQLite
optionsBuilder.UseSqlite("Data Source=SQLiteFile.db");
base.OnConfiguring(optionsBuilder);
}
}
示例代码2-4:数据上下文 MyAppDbContext.cs
三、无:数据库配制信息在示例代码2-4中已经提供
四、执行数据库迁移命令,创建数据库
五、在 xxx.razor 文件中访问数据库:使用 new 方式直接创建数据上下文,使用数据上下文执行增加、编辑、删除、查询等数据操作
@page "/counter"
@rendermode InteractiveServer
<PageTitle>Counter</PageTitle>
<h1>Counter</h1>
<p role="status">Current count: @currentCount</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
@code {
private int currentCount = 0;
private void IncrementCount()
{
currentCount++;
using var dbContext = new MyAppDbContext();
// 根据需要编写代码:示例为添加 1 个用户、1 个角色
dbContext.Add(new User("张小三") { Password = "123" });
dbContext.Add(new Role { RoleName = "管理员" });
dbContext.SaveChanges();
}
}
示例代码5-1:创建数据上下文,使用数据上下文执行增加、编辑、删除、查询等数据操作