2017-10-05 102 views
0

我startup.cs是用asp.net核心及EF核心当我尝试种子有出了错

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="[email protected]",UserType= Models.User.Type.Visitor,RegistDate=System.DateTime.Now}); 

     _dbContext.Add<Admin>(new Admin{EmailAddress="[email protected]",Password="123"}); 

     _dbContext.SaveChanges(); 
    } 
} 

当我的NuGet Update-Database套餐管理:

在类'Program'上调用方法'BuildWebHost'时发生错误。没有应用服务提供商就继续。错误:无法解析根提供程序的范围服务'Blog.DAL.Context.BlogDbContext'。

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

回答

0

那么我通过观看文档来解决它,Asp.Net Core 1.x和2.0之间有一些不同,我只是应该在程序中写入种子方法。