2017-10-05 92 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之間有一些不同,我只是應該在程序中寫入種子方法。