【.net】使用EF的一点小问题

2022-12-07 19:48:12 浏览数 (1)

最近有.net的项目。用到了Entity Framework,先简单地学习一下的时候,遇到了点问题。

版本不匹配,详见下图

工具->NuGet包管理器->程序包管理器控制台 中执行如下命令的时候,均告失败。

代码语言:text复制
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
Install-Package Microsoft.EntityFrameworkCore.Design
Install-Package Microsoft.EntityFrameworkCore.SqlServer

失败的截图如下:

image.pngimage.png

原因:

从失败原因来看,是缺省安装的【Microsoft.VisualStudio.Web.CodeGeneration.Design】的版本为7.0.0,与项目的版本不一致,项目版本为net6.0

解决方法:

在如下link中,可以看到该包的所有版本。

https://www.nuget.org/stats/packages/Microsoft.VisualStudio.Web.CodeGeneration.Design?groupby=Version

image.pngimage.png

选取6.0.10来安装。

代码语言:text复制
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 6.0.10

执行以后,在csproj文件中,将写入如下信息。

代码语言:html复制
  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.10">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.10" />
  </ItemGroup>

问题解决了。


存疑事项

即便是安装了net7.0 的sdk和runtime,

代码语言:text复制
dotnet --version

返回来的也是【7.0.100】

但是在vs2022中的项目的【target framework】中,没有.net7.0的选项。

image.pngimage.png

0 人点赞