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

时间:2017-10-23 10:40:31

标签: asp.net-core

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

它在一个类库中。

错误是:

  

' IMutableEntityType'不包含'关系'的定义没有扩展方法'关系'接受类型' IMutableEntityType'的第一个参数。可以找到

就此:

    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;

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题并且最终很容易解决。我注意到在类库中,Dependencies文件夹中没有NuGet文件夹。它完全没有了。

我检查了csproj文件,而不是像包引用那样引用它一直很难引用回程序文件目录。我删除了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>

以这种方式构建csProj文件,错误消失了,我能够运行我的&#34; dotnet迁移&#34;和#34; dotnet数据库更新&#34;根据{{​​3}}站点的命令成功生成了构建的数据库。