Blazor本身不能直接连接数据库,必须通过后端API(如ASP.NET Core Web API)实现CRUD;Blazor Server可直连DbContext,WebAssembly则需调用API并处理跨域、认证等。
Blazor 本身是前端框架,不能直接连接数据库,必须通过后端 API(如 ASP.NET Core Web API)来完成数据操作。下面以 Blazor Server 或 Blazor WebAssembly(调用 API) 两种常见场景为例,给出简洁、可落地的增删改查(CRUD)实现步骤。
这是 Blazor 操作数据库的核心依赖。你需要一个标准的 RESTful 接口:
Product)、DbContext 和 Repository(可选)适合内部管理后台等信任环境。无需跨域,代码复用度高:
Program.cs 中注册 DbContext 和服务(如 AddDbContextFactory())[Inject] IDbContextFactory DbFactory { get; set; }
await using)var context = await DbFactory.CreateDbContextAsync();
context.Products.Add(new Product { Name = "鼠标", Price = 99 });
await context.SaveChangesAsync();
前端完全隔离,更安全,符合现代架构。关键点如下:
Program.cs 注册 HttpClient:builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
服务(如 ProductService),封装所有 API 调用逻辑await 调用方法(如 await productService.GetProducts())@if (loading) { 加载中...
})Blazor 提供了开箱即用的表单绑定能力:
包裹表单 等双向绑定字段@onclick="() => DeleteProduct(product.Id)"
@foreach (var p in products) 渲染,配合 StateHasChanged() 刷新(WASM 下通常自动)基本上就这些。核心不是“Blazor 连数据库”,而是“Blazor 配合后端服务完成 CRUD”。选对架构(Server 直连 or WASM 调 API),写好接口契约,再用 Blazor 的响应式 UI 把流程串起来——不复杂但容易忽略前后端职责边界。