【问题标题】:ASP.NET Core 2 System.MissingMethodException: No parameterless constructor defined for this objectASP.NET Core 2 System.MissingMethodException:没有为此对象定义无参数构造函数
【发布时间】:2018-11-01 02:10:31
【问题描述】:

我在尝试执行迁移时收到此错误

System.MissingMethodException:未定义无参数构造函数 对于这个对象。在 System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,布尔值 publicOnly, Boolean wrapExceptions, Boolean& canBeCached, RuntimeMethodHandleInternal&ctor)

我想要做的是在我的 dbcontext 类中使用 Iconfiguration。那有可能吗?这就是我目前的做法:

public class AppDbContext : DbContext
{
    public IConfiguration Configuration { get; }
    public AppDbContext(DbContextOptions<AppDbContext> options,) : 
    base(options) { 
           Configuration = configuration;
    }
    public DbSet<ApplicationUsers> ApplicationUsers { get; set; }


    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.HasDefaultSchema(schema: Configuration["DatabaseConfiguration:SchemaName"]);
    }
}

【问题讨论】:

标签: asp.net asp.net-mvc asp.net-core


【解决方案1】:

按照以下步骤实现您的要求:

  • 修改AppDbContext

     public class AppDbContext : DbContext
    {
         public IConfiguration Configuration { get; }
         public AppDbContext(DbContextOptions<AppDbContext> options, IConfiguration configuration) : 
         base(options) { 
                Configuration = configuration;
        }
        public DbSet<ApplicationUsers> ApplicationUsers { get; set; }
    
    
        protected override void OnModelCreating(ModelBuilder modelBuilder)
         {
           base.OnModelCreating(modelBuilder);
              modelBuilder.HasDefaultSchema(schema: Configuration["DatabaseConfiguration:SchemaName"]);
         }
         }
    
  • Package Manager Console,运行add-migration init

  • Package Manager Console,运行update-database

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    相关资源
    最近更新 更多