我正在将文件从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;
答案 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}}站点的命令成功生成了构建的数据库。