private void InitializeProducts() { var timer = Stopwatch.StartNew(); if (_db.Products.Any()) { _logger.LogInformation("Добавление исходных данных в БД не требуется"); return; } _logger.LogInformation("Добавление секций... {0} мс", timer.ElapsedMilliseconds); using (_db.Database.BeginTransaction()) { _db.Sections.AddRange(TestData.Sections); _db.Database.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[Sections] ON"); _db.SaveChanges(); _db.Database.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[Sections] OFF"); _db.Database.CommitTransaction(); } _logger.LogInformation("Добавление брэндов..."); using (_db.Database.BeginTransaction()) { _db.Brands.AddRange(TestData.Brands); _db.Database.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[Brands] ON"); _db.SaveChanges(); _db.Database.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[Brands] OFF"); _db.Database.CommitTransaction(); } _logger.LogInformation("Добавление товаров..."); using (_db.Database.BeginTransaction()) { _db.Products.AddRange(TestData.Products); _db.Database.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[Products] ON"); _db.SaveChanges(); _db.Database.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[Products] OFF"); _db.Database.CommitTransaction(); } _logger.LogInformation("Добавление товаров в корзину..."); using (_db.Database.BeginTransaction()) { _db.CartProducts.AddRange(TestData.CartProducts); _db.Database.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[CartProducts] ON"); _db.SaveChanges(); _db.Database.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[CartProducts] OFF"); _db.Database.CommitTransaction(); } _logger.LogInformation("Инициализация БД данными выполнена успешно за {0} мс", timer.ElapsedMilliseconds); }
private void InitializeProducts(DatabaseFacade db) { if (_dbContext.Products.Any()) { return; } if (_dbContext.Products.Any()) { return; } using (var transaction = db.BeginTransaction()) { _dbContext.Sections.AddRange(TestData.Sections); db.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[Sections] ON"); _dbContext.SaveChanges(); db.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[Sections] OFF"); transaction.Commit(); } using (var transaction = db.BeginTransaction()) { _dbContext.Brands.AddRange(TestData.Brands); db.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[Brands] ON"); _dbContext.SaveChanges(); db.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[Brands] OFF"); transaction.Commit(); } using (var transaction = db.BeginTransaction()) { _dbContext.Products.AddRange(TestData.Products); db.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[Products] ON"); _dbContext.SaveChanges(); db.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[Products] OFF"); transaction.Commit(); } }
public static void Initialize(WebStoreDbContext context) { context.Database.EnsureCreated(); // Look for any products. if (context.Products.Any()) { return; // DB has been seeded } var sections = new List <Section>() { new Section() { Id = 1, Name = "Sportswear", Order = 0, ParentId = null }, new Section() { Id = 2, Name = "Nike", Order = 0, ParentId = 1 }, new Section() { Id = 3, Name = "Under Armour", Order = 1, ParentId = 1 }, new Section() { Id = 4, Name = "Adidas", Order = 2, ParentId = 1 }, new Section() { Id = 5, Name = "Puma", Order = 3, ParentId = 1 }, new Section() { Id = 6, Name = "ASICS", Order = 4, ParentId = 1 }, new Section() { Id = 7, Name = "Mens", Order = 1, ParentId = null }, new Section() { Id = 8, Name = "Fendi", Order = 0, ParentId = 7 }, new Section() { Id = 9, Name = "Guess", Order = 1, ParentId = 7 }, new Section() { Id = 10, Name = "Valentino", Order = 2, ParentId = 7 }, new Section() { Id = 11, Name = "Dior", Order = 3, ParentId = 7 }, new Section() { Id = 12, Name = "Versace", Order = 4, ParentId = 7 }, new Section() { Id = 13, Name = "Armani", Order = 5, ParentId = 7 }, new Section() { Id = 14, Name = "Prada", Order = 6, ParentId = 7 }, new Section() { Id = 15, Name = "Dolce and Gabbana", Order = 7, ParentId = 7 }, new Section() { Id = 16, Name = "Chanel", Order = 8, ParentId = 7 }, new Section() { Id = 17, Name = "Gucci", Order = 1, ParentId = 7 }, new Section() { Id = 18, Name = "Womens", Order = 2, ParentId = null }, new Section() { Id = 19, Name = "Fendi", Order = 0, ParentId = 18 }, new Section() { Id = 20, Name = "Guess", Order = 1, ParentId = 18 }, new Section() { Id = 21, Name = "Valentino", Order = 2, ParentId = 18 }, new Section() { Id = 22, Name = "Dior", Order = 3, ParentId = 18 }, new Section() { Id = 23, Name = "Versace", Order = 4, ParentId = 18 }, new Section() { Id = 24, Name = "Kids", Order = 3, ParentId = null }, new Section() { Id = 25, Name = "Fashion", Order = 4, ParentId = null }, new Section() { Id = 26, Name = "Households", Order = 5, ParentId = null }, new Section() { Id = 27, Name = "Interiors", Order = 6, ParentId = null }, new Section() { Id = 28, Name = "Clothing", Order = 7, ParentId = null }, new Section() { Id = 29, Name = "Bags", Order = 8, ParentId = null }, new Section() { Id = 30, Name = "Shoes", Order = 9, ParentId = null } }; using (var trans = context.Database.BeginTransaction()) { foreach (var section in sections) { context.Sections.Add(section); } context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[Sections] ON"); context.SaveChanges(); context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[Sections] OFF"); trans.Commit(); } var brands = new List <Brand>() { new Brand() { Id = 1, Name = "Acne", Order = 0 }, new Brand() { Id = 2, Name = "Grüne Erde", Order = 1 }, new Brand() { Id = 3, Name = "Albiro", Order = 2 }, new Brand() { Id = 4, Name = "Ronhill", Order = 3 }, new Brand() { Id = 5, Name = "Oddmolly", Order = 4 }, new Brand() { Id = 6, Name = "Boudestijn", Order = 5 }, new Brand() { Id = 7, Name = "Rösch creative culture", Order = 6 }, }; using (var trans = context.Database.BeginTransaction()) { foreach (var brand in brands) { context.Brands.Add(brand); } context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[Brands] ON"); context.SaveChanges(); context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[Brands] OFF"); trans.Commit(); } var products = new List <Product>() { new Product() { Id = 1, Name = "Easy Polo Black Edition", Price = 1025, ImageUrl = "product1.jpg", Order = 0, SectionId = 2, BrandId = 1 }, new Product() { Id = 2, Name = "Easy Polo Black Edition", Price = 1025, ImageUrl = "product2.jpg", Order = 1, SectionId = 2, BrandId = 1 }, new Product() { Id = 3, Name = "Easy Polo Black Edition", Price = 1025, ImageUrl = "product3.jpg", Order = 2, SectionId = 2, BrandId = 1 }, new Product() { Id = 4, Name = "Easy Polo Black Edition", Price = 1025, ImageUrl = "product4.jpg", Order = 3, SectionId = 2, BrandId = 1 }, new Product() { Id = 5, Name = "Easy Polo Black Edition", Price = 1025, ImageUrl = "product5.jpg", Order = 4, SectionId = 2, BrandId = 2 }, new Product() { Id = 6, Name = "Easy Polo Black Edition", Price = 1025, ImageUrl = "product6.jpg", Order = 5, SectionId = 2, BrandId = 2 }, new Product() { Id = 7, Name = "Easy Polo Black Edition", Price = 1025, ImageUrl = "product7.jpg", Order = 6, SectionId = 2, BrandId = 2 }, new Product() { Id = 8, Name = "Easy Polo Black Edition", Price = 1025, ImageUrl = "product8.jpg", Order = 7, SectionId = 25, BrandId = 2 }, new Product() { Id = 9, Name = "Easy Polo Black Edition", Price = 1025, ImageUrl = "product9.jpg", Order = 8, SectionId = 25, BrandId = 2 }, new Product() { Id = 10, Name = "Easy Polo Black Edition", Price = 1025, ImageUrl = "product10.jpg", Order = 9, SectionId = 25, BrandId = 3 }, new Product() { Id = 11, Name = "Easy Polo Black Edition", Price = 1025, ImageUrl = "product11.jpg", Order = 10, SectionId = 25, BrandId = 3 }, new Product() { Id = 12, Name = "Easy Polo Black Edition", Price = 1025, ImageUrl = "product12.jpg", Order = 11, SectionId = 25, BrandId = 3 }, }; using (var trans = context.Database.BeginTransaction()) { foreach (var product in products) { context.Products.Add(product); } context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[Products] ON"); context.SaveChanges(); context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[Products] OFF"); trans.Commit(); } }