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

ASP.NET Core 2+EF Core 2.0.2执行Update-Database报错System.Data.SqlClient不支持

解决ASP.NET Core 2 + EF Core 2.0.2 Update-Database报错System.Data.SqlClient is not supported on this platform

我之前也碰到过类似的问题,结合你的场景,大概率是依赖包兼容或者项目配置的问题,给你几个排查和解决的方向:

  • 对齐EF Core相关包版本
    首先要确保Microsoft.EntityFrameworkCore.SqlServer的版本和你用的EF Core版本(2.0.2)完全一致,版本不匹配很容易引发这类平台兼容问题。你可以直接编辑.csproj文件,确认对应的PackageReference:

    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.2" />
    

    另外,EF Core 2.0.2依赖特定版本的System.Data.SqlClient,建议你添加或确认这个包的引用:

    <PackageReference Include="System.Data.SqlClient" Version="4.4.3" />
    

    也可以在Package Manager Console里执行命令来更新/安装:

    Update-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.0.2
    Install-Package System.Data.SqlClient -Version 4.4.3
    
  • 检查项目目标平台配置
    确认你的.csproj里的<TargetFramework>确实是netcoreapp2.0,如果是跨平台开发,建议添加<RuntimeIdentifiers>指定支持的运行时,比如:

    <PropertyGroup>
      <TargetFramework>netcoreapp2.0</TargetFramework>
      <RuntimeIdentifiers>win10-x64;linux-x64</RuntimeIdentifiers>
    </PropertyGroup>
    

    缺少运行时标识可能会导致系统无法找到适配当前平台的SqlClient版本。

  • 清理项目缓存并重建
    有时候旧的编译缓存或残留包会干扰执行,你可以:

    1. 在Visual Studio里执行「清理解决方案」,然后「重建解决方案」
    2. 删除项目根目录下的bin和obj文件夹
    3. 执行dotnet restore或者在Package Manager Console里执行Restore-Packages重新恢复依赖
  • 确认Package Manager Console的目标项目
    执行Update-Database前,一定要检查Package Manager Console顶部的「默认项目」下拉框,确保选中的是包含你的DbContext的项目,选错项目会导致依赖缺失,进而触发这个错误。

  • 尝试用dotnet CLI命令替代
    如果Package Manager Console的命令一直报错,试试用dotnet CLI执行数据库更新:

    dotnet ef database update
    

    CLI的错误提示有时候会更详细,能帮你定位到具体的问题点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:09:12