【问题标题】:An error occurred while calling method 'BuildWebHost' on class 'Program'. Continuing without the application service provider - ASP.NET CORE Migration在类“程序”上调用方法“BuildWebHost”时发生错误。在没有应用程序服务提供者的情况下继续 - ASP.NET CORE 迁移
【发布时间】:2018-05-22 08:43:36
【问题描述】:

运行Add-Migration InitialCreate 迁移命令时出现以下错误。我正在使用 ASP.NET CORE 2.0。

在类上调用方法“BuildWebHost”时发生错误 '程序'。在没有应用程序服务提供商的情况下继续。错误: 表 'Temp.contacts' 不存在 无法创建类型的对象 '应用程序数据库上下文'。添加一个实现 'IDesignTimeDbContextFactory' 到项目,或 请参阅https://go.microsoft.com/fwlink/?linkid=851728 了解更多信息 设计时支持的模式。

为了解决这个错误,我尝试添加一个实现IDesignTimeDbContextFactory但不起作用的类。

有人知道我为什么会收到这个错误吗?

【问题讨论】:

  • 能否添加您的 startup.cs + DB 上下文文件?
  • 是的,我已经添加了这两个文件。
  • 我的意思是在这里我们可以看看是否有问题。因为这个错误基本上说ApplicationDbContext有问题。
  • 您的启动项目应该是具有 Startup.cs 文件的项目。并且在包管理器控制台默认项目应该是具有 DBContext 文件的项目
  • startup.cs + DB上下文文件中是否有与迁移相关的具体设置?

标签: c# asp.net-core-2.0 entity-framework-migrations


【解决方案1】:

我在表名“Users”时遇到了同样的错误。

原因是我使用了一个播种器类,并且在其中我使用了这个指令

if (!context.Users.Any())

问题出在它身上。

我评论了它,添加了迁移,然后取消了评论。

【讨论】:

    【解决方案2】:

    在我将 Program.cs 中 CreateWebHostBuilder 的返回类型从 IWebHostBuilder 更改为 IWebHost 后,我​​遇到了这样的错误。我想这个方法是用来添加迁移的,所以一定要检查这个返回类型。

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .UseSentry();
    

    【讨论】:

      【解决方案3】:

      我已经通过以下链接解决了这个问题。

      Unable to create migrations after upgrading to ASP.NET Core 2.0

      我创建了另一个实现 IDesignTimeDbContextFactory 的类。

      谢谢,

      【讨论】:

        猜你喜欢
        • 2018-08-21
        • 1970-01-01
        • 2015-10-03
        • 1970-01-01
        • 2015-10-20
        • 2011-02-12
        • 1970-01-01
        • 2020-07-28
        • 1970-01-01
        相关资源
        最近更新 更多