c# - 在 Startup 中将 ApplicationDbContext 注入(inject)到 Configure 方法中

标签 c# entity-framework asp.net-core .net-core entity-framework-core

我正在使用 EntityFrameworkCore 2.0.0-preview2-final,我想将 ApplicationDbContext 注入(inject)到 Startup 类的 Configure 方法中。

这是我的代码:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, ApplicationDbContext context)
{ 
    // rest of my code
}

但是当我运行我的应用程序时,我收到一条错误消息:

System.InvalidOperationException: Cannot resolve scoped service 'ProjectName.Models.ApplicationDbContext' from root provider.

这也是我来自 ConfigureServices 方法的代码:

services.AddDbContext<ApplicationDbContext>(options =>
        {
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
            }
            else
            {
                options.UseSqlite("Data Source=travelingowe.db");
            }
        });

你知道我该如何解决这个问题吗?

最佳答案

这将适用于 2.0.0 RTM。我们这样做是为了在调用 Configure 期间有一个范围,以便您最初编写的代码可以工作。参见 https://github.com/aspnet/Hosting/pull/1106了解更多详情。

关于c# - 在 Startup 中将 ApplicationDbContext 注入(inject)到 Configure 方法中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45231235/

相关文章:

c# - Azure Web 应用服务支持哪些 .NET Core 图像大小调整库?

c# - 异常类可见性?

c# - EntityType 没有在 MVC 4 中定义的键

c# - 自创建数据库以来,支持 'EmployeeDetailsContext' 上下文的模型已发生更改。

owin - 如何在 Startup.cs 中添加 CamelCasePropertyNamesContractResolver?

c# - Azure Devops 无法运行 xUnit 测试

c# - 使用 C#/Mono 的 Iphone 应用程序

c# - 如何在我的 View 模型中获取鼠标位置

c# - SaveFileDialog 从设置的文件名中删除扩展名

entity-framework - NET 4.6.1上的Entity Framework Core 2.0