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

.NET6执行dotnet ef database update遇方法未找到错误求助

解决方法

1. 统一EF Core所有相关包的版本

你遇到的Method not found错误核心原因就是EF Core包版本不兼容:Microsoft.EntityFrameworkCore.SqlServer用了7.0.0,其他EF包却是6.0.10,.NET 6.0环境下混用7.x版本的EF包必然会出现API不匹配问题。

打开你的Project.csproj文件,把所有EF Core相关的NuGet包版本统一为6.0.10(和你其他EF包版本一致,也适配你的.NET 6.0.402 SDK):

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.10" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.10">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.10" />

修改后执行dotnet restore命令,确保所有包都更新到统一版本。

2. 修复手动修改的迁移文件

手动修改[serial]_[name].designer.cs很容易破坏迁移和模型的元数据一致性,建议重新生成迁移:

  • 先删除项目根目录下的Migrations文件夹(如果里面的迁移记录不需要保留的话)
  • 重新执行dotnet ef migrations add [你的迁移名称],让EF自动生成匹配当前模型的迁移文件,不要手动修改designer.cs文件。

如果需要保留之前的迁移记录,至少要删除你手动修改过的那个迁移文件,然后重新生成对应的迁移。

3. 清理构建文件并重建应用

在macOS上,清理旧的构建缓存和DLL文件的步骤:

  • 手动删除项目目录下的bin和obj两个文件夹(这两个是构建输出和中间缓存目录,旧版本的DLL都在这里)
  • 执行命令dotnet clean,自动清理项目的构建缓存
  • 最后执行dotnet build重新构建项目,确保所有依赖和代码都是最新的

完成以上步骤后,再执行dotnet ef database update应该就能正常运行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:25:33