图解 在 .NET 8.0 的 Blazor Web App 项目模板中使用 Entity Framework Core(EF Core) 访问 SQLite 数据库:对象模式

一、使用 NuGet 添加引用  Microsoft.EntityFrameworkCore.Sqlite、Microsoft.EntityFrameworkCore.Tools

参见工厂模式:图解 在 .NET 8.0 的 Blazor Web App 项目模板中使用 Entity Framework Core(EF Core) 访问 SQLite 数据库:工厂模式_microsoft.entityframeworkcore.sqlite-CSDN博客

二、创建实体:为使用方便,在项目中创建 Entity 文件夹,存放“实体”文件、数据“上下文”文件、“全局引用”文件

图2-1、示例代码2-1、示例代码2-2、示例代码2-3,参见工厂模式:​​​​​​​图解 在 .NET 8.0 的 Blazor Web App 项目模板中使用 Entity Framework Core(EF Core) 访问 SQLite 数据库:工厂模式_microsoft.entityframeworkcore.sqlite-CSDN博客

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中已经提供

四、执行数据库迁移命令,创建数据库

参见工厂模式:​​​​​​​图解 在 .NET 8.0 的 Blazor Web App 项目模板中使用 Entity Framework Core(EF Core) 访问 SQLite 数据库:工厂模式_microsoft.entityframeworkcore.sqlite-CSDN博客

五、在 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:创建数据上下文,使用数据上下文执行增加、编辑、删除、查询等数据操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值