【发布时间】:2018-04-20 10:46:48
【问题描述】:
开发环境:
- macOS Sierra 版本 10.12.6
- Visual Studio Community for Mac 版本 7.2.2
- postgreSQL 版本 9.4.5
- Npgsql.EntityFrameworkCore.PostgreSQL 版本 2.0.0 (Npgsql 3.2.5)
参考http://www.npgsql.org/efcore/index.html
这是 .csproj 的内容:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
<Folder Include="SQL Scripts\" />
<Folder Include="Models\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.0" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.Design" Version="2.0.0-preview1" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
</ItemGroup>
</Project>
从 .csproj 内容中,注意“Npgsql.EntityFrameworkCore.PostgreSQL.Design”的版本。它是“2.0.0-preview1”。 “2.0.0”没有 nuget 包。
当我尝试发出命令对现有 postgreSQL 数据库进行逆向工程时,我遇到以下消息:
Version for package `Microsoft.VisualStudio.Web.CodeGeneration.Tools` could not be resolved.
这是我用来对现有数据库进行逆向工程的经过清理的命令行:
dotnet ef dbcontext scaffold "Host=localhost;Database=mydatabase;Username=me;Password=mypwd" Npgsql.EntityFrameworkCore.PostgreSQL
Microsoft.VisualStudio.Web.CodeGeneration.Tools 包的版本是 2.0.0 版。
我的 NuGet 设置如下:
- 启用:选择解决方案时自动恢复包。
- 已启用:打开解决方案时检查包更新。
- 来源:https://api.nuget.org/v3/index.json
【问题讨论】:
标签: .net entity-framework-core npgsql macos-sierra