实体框架核心:无法添加迁移:无参数构造函数

nam*_* vo 3 c# asp.net entity-framework

我的数据项目参考:(实体框架核心)

    <Project Sdk="Microsoft.NET.Sdk">    
      <PropertyGroup>
        <TargetFramework>netcoreapp1.1</TargetFramework>
      </PropertyGroup>    
      <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.1" />
        <ProjectReference Include="..\Butv.Core\Butv.Core.csproj" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.1" PrivateAssets="All" />      
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.0.0" />    
      </ItemGroup>
      <ItemGroup>
        <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />  
      </ItemGroup>
      <ItemGroup>
        <Folder Include="Migrations\" />
      </ItemGroup>
    </Project>
Run Code Online (Sandbox Code Playgroud)

数据库上下文:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
     public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { }

     protected override void OnModelCreating(ModelBuilder modelBuilder)
     {  ....
     }
}
public class ApplicationUser : IdentityUser
{
}
Run Code Online (Sandbox Code Playgroud)

每次我尝试命令

dotnet ef migrations添加Init --verbose

,我收到了错误.在将Data项目与主项目分开之前,它已经习惯了.

Microsoft.EntityFrameworkCore.Design.OperationException:在"ApplicationDbContext"上找不到无参数构造函数.将无参数构造添加到'ApplicationDbContext'或在与'ApplicationDbContext'相同的程序集中添加'IDbContextFactory'的实现.---> System.Mi ssingMethodException:没有为此对象定义无参数构造函数.在System.RuntimeTypeHandle.CreateInstance(RuntimeType类型,Boolean publicOn ly,Boolean noCheck,Boolean&canBeCached,RuntimeMethodHandleInternal&ctor,Bo olean&bNeedSecurityCheck)

Yer*_*ian 12

我有同样的问题.我已经得到了正常迁移的项目.从某种程度上说它开始给我这个错误.问题出在启动项目选择中.选择项目作为启动,在其中配置要用作服务的实体框架.

这可以帮助