2016-11-23 42 views
0

我正在构建一个Asp.Net核心应用程序并尝试播种数据库。我已经编写了在我的Startup.cs Configure方法中启动种子的逻辑。当我放置一个断点并按下F5时,我无法调试。它似乎达到了断点。任何人都可以指出我错过了什么。我的种子逻辑也有问题吗?如果你可以看到有一个对context.EnsureSeedData(context)的调用。该应用程序似乎disonnect并获得以下错误信息无法调试Startup.cs中的配置方法

此网站无法到达.localhost拒绝连接。

我使用IISExpress

Startup.cs文件中配置方法

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime appLifetime) 
     { 


      using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope()) 
      { 
       var context = serviceScope.ServiceProvider.GetService<CustomerOrderEntities>(); 
       context.Database.Migrate(); 
       context.EnsureSeedData(context); 
      } 


      loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
      loggerFactory.AddDebug(); 

      if (env.IsDevelopment()) 
      { 
       app.UseDeveloperExceptionPage(); 
       app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions { 
        HotModuleReplacement = true 
       }); 
      } 
      else 
      { 
       app.UseExceptionHandler("/Home/Error"); 
      } 

      app.UseStaticFiles(); 

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

       routes.MapSpaFallbackRoute(
        name: "spa-fallback", 
        defaults: new { controller = "Home", action = "Index" }); 
      }); 

      // If you want to dispose of resources that have been resolved in the 
      // application container, register for the "ApplicationStopped" event. 
      appLifetime.ApplicationStopped.Register(() => this.ApplicationContainer.Dispose()); 
     } 

EnsureSeedData方法

public void EnsureSeedData(CustomerOrderEntities context) 
     { 



      if (!context.Customers.Any()) 
      { 

       context.State.AddRange(
        new State { Abbreviation = "AL", Name = "Alabama" }, 
        new State { Abbreviation = "AK", Name = "Alaska" }, 
        new State { Abbreviation = "AZ", Name = "Arizona" }, 
        new State { Abbreviation = "AR", Name = "Arkansas" }, 
        new State { Abbreviation = "OH", Name = "Ohio" }); 
       context.SaveChanges(); 

       context.Customers.AddRange(
        new Customers { FirstName = "Jade", LastName = "Lawrence", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 1 }, 
        new Customers { FirstName = "Jack", LastName = "Robinson", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 2 }, 
        new Customers { FirstName = "Dan", LastName = "Cruise", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 2 }, 
        new Customers { FirstName = "Tom", LastName = "Menon", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 1 }, 
        new Customers { FirstName = "Mike", LastName = "Tyson", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 3 }, 
        new Customers { FirstName = "Ben", LastName = "Jones", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 2 }, 
        new Customers { FirstName = "Mark", LastName = "Foreman", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 2 }, 
        new Customers { FirstName = "Henry", LastName = "Canvedalle", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 3 }, 
        new Customers { FirstName = "Blake", LastName = "Walter", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 4 }, 
        new Customers { FirstName = "David", LastName = "Beckham", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 4 }, 
        new Customers { FirstName = "Joe", LastName = "Strand", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 4 }, 
        new Customers { FirstName = "Jammie", LastName = "Oliver", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 3 }, 
        new Customers { FirstName = "Ben", LastName = "Affleck", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 3 }); 

       context.SaveChanges(); 
      } 
} 
+0

种子初始化加入的配置方法结束Startup.cs文件:https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/working-with-sql – Alexan

回答

0

种子在你的数据库您做的更好以下数据:

Startup.cs

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, ApplicationDbContext context) 
{ 
    ... 

    app.UseMvc(); 

    //Init the database 
    DbInitializer.Initialize(context); 
} 

DbInitializer.cs(把这个数据文件夹的上下文类旁)

public static class DbInitializer 
{ 

    public static void Initialize(ApplicationDbContext context) 
    { 
     EnsureSeedData(context); 
    } 

    private void EnsureSeedData(CustomerOrderEntities context) 
    { 

     if (!context.Customers.Any()) 
     { 

      context.State.AddRange(
       new State { Abbreviation = "AL", Name = "Alabama" }, 
       new State { Abbreviation = "AK", Name = "Alaska" }, 
       new State { Abbreviation = "AZ", Name = "Arizona" }, 
       new State { Abbreviation = "AR", Name = "Arkansas" }, 
       new State { Abbreviation = "OH", Name = "Ohio" }); 
      context.SaveChanges(); 

      context.Customers.AddRange(
       new Customers { FirstName = "Jade", LastName = "Lawrence", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 1 }, 
       new Customers { FirstName = "Jack", LastName = "Robinson", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 2 }, 
       new Customers { FirstName = "Dan", LastName = "Cruise", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 2 }, 
       new Customers { FirstName = "Tom", LastName = "Menon", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 1 }, 
       new Customers { FirstName = "Mike", LastName = "Tyson", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 3 }, 
       new Customers { FirstName = "Ben", LastName = "Jones", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 2 }, 
       new Customers { FirstName = "Mark", LastName = "Foreman", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 2 }, 
       new Customers { FirstName = "Henry", LastName = "Canvedalle", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 3 }, 
       new Customers { FirstName = "Blake", LastName = "Walter", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 4 }, 
       new Customers { FirstName = "David", LastName = "Beckham", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 4 }, 
       new Customers { FirstName = "Joe", LastName = "Strand", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 4 }, 
       new Customers { FirstName = "Jammie", LastName = "Oliver", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 3 }, 
       new Customers { FirstName = "Ben", LastName = "Affleck", Gender = Gender.Male, Email = "[email protected]", Address = "ABC Farms", City = "London", StateId = 3 }); 

      context.SaveChanges(); 
     } 
    } 
} 
+0

但我无法调试应用程序本身。我得到一个错误消息当我F5我的Visual Studio 2015应用程序时,连接被拒绝 – Tom

+0

另外我没有看到你有什么建议,因为我有我的Context类中的EnsureSeedData并从我的启动文件调用它的差异 – Tom

+0

这是真的,但它更干净:)。关于视觉工作室:因为我正在使用视觉代码,所以我没有答案 – Wouter