Asp.net core ASP.NET Core 2升级过Core 2后,我的OnModelCreating方法出现错误

Asp.net core ASP.NET Core 2升级过Core 2后,我的OnModelCreating方法出现错误,asp.net-core,Asp.net Core,我正在将文件从1.1项目传输到ASP.NET Core 2,现在出现错误。在谷歌搜索错误后,几乎没有任何东西可以表明它是什么 它在类库中 错误是: “IMutableEntityType”不包含“Relational”的定义,并且找不到接受“IMutableEntityType”类型的第一个参数的扩展方法“Relational” 关于这一点: protected override void OnModelCreating(ModelBuilder modelBuilder) {

我正在将文件从1.1项目传输到ASP.NET Core 2,现在出现错误。在谷歌搜索错误后,几乎没有任何东西可以表明它是什么

它在类库中

错误是:

“IMutableEntityType”不包含“Relational”的定义,并且找不到接受“IMutableEntityType”类型的第一个参数的扩展方法“Relational”

关于这一点:

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        foreach (var entity in modelBuilder.Model.GetEntityTypes())
        {
            entity.Relational().TableName = entity.DisplayName();
        }
我在“关系”下面有一条曲线

这是升级的结果吗?我怎么修理它

我在顶部有以下用法:

        using JobsLedger.MODEL.Entities;
        using Microsoft.EntityFrameworkCore;
        using Microsoft.EntityFrameworkCore.Metadata.Internal;
        using System;

我设法解决了这个问题,结果很容易。我注意到类库中的Dependencies文件夹中没有NuGet文件夹。它完全不见了

我检查了csproj文件,没有像包引用这样的引用,而是一路硬引用回ProgramFiles目录。我删除了csProj文件中的那些引用,用一个普通的列表替换了它们,结果我现在有了一个NuGet文件夹和一个以普通方式列出的那些包的列表

这是我当前的csProj文件:

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

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

    <ItemGroup>
      <ProjectReference Include="..\JobsLedger.MODEL\JobsLedger.MODEL.csproj" />
    </ItemGroup>

    <ItemGroup>
      <PackageReference Include="FluentValidation">
        <Version>7.2.0</Version>
      </PackageReference>
      <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
      <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" PrivateAssets="All" />
      <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0" PrivateAssets="All" />
    </ItemGroup>

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

  </Project>

netcoreapp2.0
7.2.0

通过这种方式构造csProj文件,错误消失了,我能够根据站点成功地运行我的“dotnet迁移”和“dotnet数据库更新”命令,从而生成了一个已构建的数据库。

我成功地解决了这一问题,最终非常轻松。我注意到类库中的Dependencies文件夹中没有NuGet文件夹。它完全不见了

我检查了csproj文件,没有像包引用这样的引用,而是一路硬引用回ProgramFiles目录。我删除了csProj文件中的那些引用,用一个普通的列表替换了它们,结果我现在有了一个NuGet文件夹和一个以普通方式列出的那些包的列表

这是我当前的csProj文件:

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

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

    <ItemGroup>
      <ProjectReference Include="..\JobsLedger.MODEL\JobsLedger.MODEL.csproj" />
    </ItemGroup>

    <ItemGroup>
      <PackageReference Include="FluentValidation">
        <Version>7.2.0</Version>
      </PackageReference>
      <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
      <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" PrivateAssets="All" />
      <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0" PrivateAssets="All" />
    </ItemGroup>

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

  </Project>

netcoreapp2.0
7.2.0

通过这种方式构造csProj文件,错误消失了,我能够根据站点成功运行“dotnet迁移”和“dotnet数据库更新”命令,生成了一个已构建的数据库。

您是否已将-Microsoft.AspNetCore.All nuget包添加到您的项目中?这包括所有必需的nuget包。如果不想添加所有组件,请确保至少包含nuget“Microsoft.EntityFrameworkCore.Relational”。与解决方案中的主项目不同,依赖项中没有nuget文件夹。但是,当我打开nuget解决方案时,我有Microsoft.AspNetCore.all包、EntityFrameworkCore.Tools包,Microsoft.NetCore.App包和SisualStudio.Web.CodeGeneration.Design包..我还收到一个错误PropertyBuilder不包含“HasDefaultValue”的定义您是否缺少using指令或程序集引用…请查看EF Core 2.0的安装文档:。确保每件事都像它应该的那样详细。可能缺少某些程序包或不应再实际安装某些程序包。是否已将-Microsoft.AspNetCore.All-nuget程序包添加到项目中?这包括所有必需的nuget包。如果不想添加所有组件,请确保至少包含nuget“Microsoft.EntityFrameworkCore.Relational”。与解决方案中的主项目不同,依赖项中没有nuget文件夹。但是,当我打开nuget解决方案时,我有Microsoft.AspNetCore.all包、EntityFrameworkCore.Tools包,Microsoft.NetCore.App包和SisualStudio.Web.CodeGeneration.Design包..我还收到一个错误PropertyBuilder不包含“HasDefaultValue”的定义您是否缺少using指令或程序集引用…请查看EF Core 2.0的安装文档:。确保每件事都像它应该的那样详细。可能有一些软件包丢失了,或者不应该再安装了。