无法加载类型'Microsoft.EntityFrameworkCore.Infrastructure.DesignTimeProviderServicesAttribute'

时间:2018-01-18 12:36:53

标签: asp.net-core .net-core asp.net-core-mvc entity-framework-core asp.net-core-2.0

我使用Visual Studio for Mac,创建了一个.net核心web api项目。 csproj文件是这样的:

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

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
    <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.9-dmr" />
    <PackageReference Include="MySql.Data.EntityFrameworkCore.Design" Version="8.0.9-dmr" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
  </ItemGroup>

</Project>

当我使用以下命令从MySQL执行“dotnet ef dbcontext scaffold”到scaffold时:

dotnet ef dbcontext scaffold "server=[server];port=3306;user=[user];password=[password];database=[dbname]" MySql.Data.EntityFrameworkCore -o Models -c [contextname] -f -v

该命令返回错误,如下所示:

Could not load type 'Microsoft.EntityFrameworkCore.Infrastructure.DesignTimeProviderServicesAttribute' from assembly 'Microsoft.EntityFrameworkCore, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.

我检查了包Microsoft.EntityFrameworkCore。确实,该包中没有基础结构命名空间。但在网上搜索,我发现其他人可以成功搭建这样的设置。 有什么我做错了吗? 我怎样才能正确搭建支架?

谢谢大家。

1 个答案:

答案 0 :(得分:2)

您应该从NuGet软件包中添加Microsoft.EntityFrameworkCore.SqlServer软件包,这对我有用。希望,这也对您有用。