首先,我试图在我的数据库中植入样本数据.我已经读到这是做这件事的方法(在Startup.Configure)(请看ASP.NET Core RC2 Seed Database)

我在用ASP.NET Core 2.0和默认选项.

和往常一样,我在ConfigureServices中登记了我的DbContext分.

系统InvalidOperationException:'无法解析作用域服务

我的创业课程是这样的:

public abstract class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<SGDTPContext>(options => options.UseInMemoryDatabase("MyDatabase"))
        services.AddMvc();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseMvc();

        SeedDatabase(app);
    }

    private static void SeedDatabase(IApplicationBuilder app)
    {
        using (var context = app.ApplicationServices.GetRequiredService<SGDTPContext>())
        {
            // Seed the Database
            //... 
        }
    }
}

我做错了什么?

推荐答案

您正在将SGDTPContext注册为scoped服务,然后try 访问作用域的outside.要在SeedDatabase方法内创建作用域,请使用以下方法:

using (var serviceScope = app.ApplicationServices.CreateScope())
{
    var context = serviceScope.ServiceProvider.GetService<SGDTPContext>();

    // Seed the database.
}

感谢@khellang在 comments 中指出了CreateScope扩展方法,以及@Tseng的 comments 和answer Re如何在EF Core 2中实现种子.

Asp.net相关问答推荐

如何在 asp.net 服务器中使用字体

DBSet 不包含 Where 的定义

我可以将图像添加到 ASP.NET 按钮吗?

如何在 ASP.NET 中以 'YYYY-MM-DD' 格式获取当前日期?

httpCompression 和 urlCompression 有什么区别?

AppendHeader 是否与 AddHeader 完全相同?

模型项的类型为 CookMeIndexViewModel,但需要类型为 IEnumerable 的模型项

HttpWebRequest 未通过凭据

使用 Lucene.NET 索引 .PDF、.XLS、.DOC、.PPT

.NET 核心 IdentityUser 模型中规范化邮箱和用户名的用途是什么?

使用 JObject 所需的库名称是什么?

asp.net 有控制台日志(log)吗?

在 ASP.NET 中实现 404 的最佳方法

无法共同创建探查器错误 - 但未使用探查器

修改 web.config 时如何防止 ASP.NET 应用程序重新启动?

如何在 asp.net 中更改 DataBinder.Eval 的日期格式?

如何在 ASP.NET 中通过 LAN 访问您的网站

在 ASP.NET Web API 2 中禁用 *all* 异常处理(为我自己腾出空间)?

Page.IsPostBack 和 Page.IsCallBack 有什么区别?

MVC4 - 当优化设置为 true 时Bundle 不起作用