// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseStatusCodePages(); } else { app.UseExceptionHandler("/Error"); } app.UseStaticFiles(); app.UseSession(); app.UseAuthentication(); app.UseMvc(routes => { routes.MapRoute( name: "Error", template: "Error", defaults: new { Controller = "Error", action = "Error" }); routes.MapRoute( name: null, template: "{category}/Page{page:int}", defaults: new { Controller = "Product", action = "List" }); routes.MapRoute( name: null, template: "Page{page:int}", defaults: new { Controller = "Product", action = "List", page = "1" }); routes.MapRoute( name: null, template: "{category}", defaults: new { Controller = "Product", action = "List", page = "1" }); routes.MapRoute( name: null, template: "", defaults: new { Controller = "Product", action = "List", page = "1" }); routes.MapRoute( name: null, template: "{controller=Product}/{action=List}/{id?}"); }); SeedData.EnsurePopulated(app); EntitySeedData.EnsurePopulated(app); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { foreach (var entityType in modelBuilder.Model.GetEntityTypes()) { // equivalent of modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); entityType.SetTableName(entityType.DisplayName()); } foreach (var relationship in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys())) { relationship.DeleteBehavior = DeleteBehavior.Restrict; } //add here the specific configuration for each class EntitySeedData.Seed(modelBuilder); base.OnModelCreating(modelBuilder); }