使用asp.net核心和ef核心,当我尝试种子出错时

时间:2017-10-05 07:34:51

标签: asp.net-core ef-core-2.0

我的startup.cs是

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseBrowserLink();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

           SeedData.Seed(app);
        }

我的种子课是:

 public static class SeedData
{
    public static void Seed(IApplicationBuilder app)
    {
        var _dbContext= app.ApplicationServices.GetRequiredService<BlogDbContext>();

        _dbContext.Database.EnsureDeleted();

        _dbContext.Add<User>(new User { UserName = "Niko", Password ="123",EmailAddress="nikozhao5456@gmail.com",UserType= Models.User.Type.Visitor,RegistDate=System.DateTime.Now});

        _dbContext.Add<Admin>(new Admin{EmailAddress="lovezgd888@163.com",Password="123"});

        _dbContext.SaveChanges();
    }
}

Nuget Package Manage中的Update-Database

在“Program”类上调用方法“BuildWebHost”时发生错误。继续没有应用程序服务提供商。错误:无法从根提供程序解析作用域服务“Blog.DAL.Context.BlogDbContext”。

无法创建“BlogDbContext”类型的对象。将“IDesignTimeDbContextFactory”的实现添加到项目中,或者参阅https://go.microsoft.com/fwlink/?linkid=851728了解设计时支持的其他模式。

1 个答案:

答案 0 :(得分:0)

我通过观看文档来解决它,Asp.Net Core 1.x和2.0之间有一些不同之处;我应该在program.cs中编写种子方法