我使用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。确实,该包中没有基础结构命名空间。但在网上搜索,我发现其他人可以成功搭建这样的设置。 有什么我做错了吗? 我怎样才能正确搭建支架?
谢谢大家。
答案 0 :(得分:2)
您应该从NuGet软件包中添加Microsoft.EntityFrameworkCore.SqlServer
软件包,这对我有用。希望,这也对您有用。