You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor .NET7项目出现Microsoft.Data.SqlClient平台不支持错误求助

解决Blazor项目中「Microsoft.Data.SqlClient is not supported on this platform」错误

问题根源

你遇到的错误核心原因是Blazor WebAssembly(WASM)客户端不支持Microsoft.Data.SqlClient,该库依赖原生系统组件,无法在浏览器的WASM沙箱环境中运行。另外你在客户端Program.cs中直接初始化数据库的操作也不符合Blazor WASM的架构设计——客户端不应直接连接数据库,所有数据操作需通过后端API完成。

解决方案

1. 调整项目分层与依赖

  • 将Persistence层的引用仅保留在后端项目(如API项目或Blazor Server项目),移除客户端项目对Persistence层的引用,避免客户端加载不兼容的库。
  • 客户端通过调用后端API接口来实现数据交互,而非直接操作DbContext或仓储。

2. 移至后端执行数据库初始化

将数据库初始化代码从客户端Program.cs转移到后端项目的Program.cs中:

var app = builder.Build();

// 仅在后端项目中执行数据库初始化
using var scope = app.Services.CreateScope();
var dbContext = scope.ServiceProvider.GetRequiredService<LIUContext>();
dbContext.Database.EnsureCreated();

await app.RunAsync();

3. 检查Blazor Server项目的包依赖(如果是Server类型)

如果你的项目是Blazor Server,仍出现该错误,按以下步骤排查:

  • 确认后端项目的目标框架为.NET 7,在项目文件(.csproj)中检查:
    <TargetFramework>net7.0</TargetFramework>
    
  • 确保安装的是Microsoft.EntityFrameworkCore.SqlServer包(而非单独安装Microsoft.Data.SqlClient),该包会自动引入兼容版本的Microsoft.Data.SqlClient:
    Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 7.0.0
    
  • 清理项目并重新生成:删除bin和obj目录,执行dotnet clean和dotnet build命令。

4. 验证数据库操作流程

通过Package Manager Console能正常创建数据库,说明你的Persistence层配置是正确的,只需确保所有数据库相关操作都在后端执行,客户端仅负责UI展示和API调用。

内容的提问来源于stack exchange,提问作者Enrico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:27:42