图解 在 .NET 8.0 的 Blazor Web App 项目模板中使用 Entity Framework Core(EF Core) 访问 SQLite 数据库:工厂模式
在.NET 8.0的Blazor Web App项目模板中使用Entity Framework Core (EF Core)涉及以下步骤:
- 创建一个新的Blazor Web App项目。
- 添加Entity Framework Core NuGet包。
- 定义数据模型。
- 创建数据库上下文。
- 使用EF Core迁移功能创建数据库和表。
- 在Blazor组件中使用数据库上下文。
以下是具体步骤的示例代码:
- 创建Blazor Web App项目:
dotnet new blazorserver -o MyBlazorApp
cd MyBlazorApp
- 添加EF Core包:
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
- 定义数据模型(例如,在
Models
文件夹中):
using System.ComponentModel.DataAnnotations;
public class ExampleModel
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
}
- 创建数据库上下文(在
Data
文件夹中):
using Microsoft.EntityFrameworkCore;
public class ExampleDbContext : DbContext
{
public DbSet<ExampleModel> ExampleModels { get; set; }
public ExampleDbContext(DbContextOptions<ExampleDbContext> options)
: base(options)
{
}
}
- 使用迁移创建数据库:
dotnet ef migrations add InitialCreate
dotnet ef database update
- 在Blazor组件中使用数据库上下文(例如,在
Pages
文件夹中):
@page "/"
@inject ExampleDbContext DbContext
<h1>Example Model List</h1>
@if (models == null)
{
<p><em>Loading...</em></p>
}
else
{
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
</tr>
</thead>
<tbody>
@foreach (var model in models)
{
<tr>
<td>@model.Id</td>
<td>@model.Name</td>
</tr>
}
</tbody>
</table>
}
@code {
private List<ExampleModel> models;
protected override async Task OnInitializedAsync()
{
models = await DbContext.ExampleModels.ToListAsync();
}
}
以上步骤和代码展示了如何在Blazor Web App项目中使用EF Core。记得在实际应用中,需要在Startup.cs
中配置数据库上下文的服务,并设置数据库连接字符串。
评论已关闭