首页 > 解决方案 > .net core 2.1 EF Core 逆向工程错误 VS 2017

问题描述

进行 EF Core 逆向工程的过程并不愉快。

最新错误

该方法或操作未实现。

Scaffold-DbContext“方法或操作未实现”

我对这两个命令都收到相同的错误

从 VS 2017 中的包管理器控制台运行它:

Scaffold-DbContext 'Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Chinook' Microsoft.EntityFrameworkCore.SqlServer

并从命令提示符:

dotnet ef dbcontext scaffold "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Chinook" Microsoft.EntityFrameworkCore.SqlServer

是的,我确实将它们更改为同时拥有我的数据源和数据库。

我收到这个错误

无法加载文件或程序集 'System.Diagnostics.DiagnosticSource,版本 = 4。0.3.1,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51'。找到的程序集的清单定义与程序集引用不匹配。(HRES ULT 异常:0x80131040)

我在升级到之前和之后都得到了这个.net core SDK 2.2.101

仅供参考,我的 csproj 文件看起来像这样

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.4" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.4">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
  </ItemGroup>

</Project>

标签: entity-frameworkasp.net-core.net-coreef-code-firstef-core-2.1

解决方案


在安装 EF power Tools 和最新的 Core 2.2.xx SDK 之间,我现在可以更改我的项目以使用下拉更改为 .net core 2.2(以前只能执行 2.1.

然后使用 Nuget 更新等,它终于可以工作了!


推荐阅读