Ejemplo n.º 1
0
        private void InitialiseProducts()
        {
            var db = _db.Database;

            //если есть хоть один товар, то таблица считается проинициализированной
            if (_db.Products.Any())
            {
                return;
            }

            //добавляем бд транзакциями: если будет ошибка, всё откатится назад
            using (db.BeginTransaction())
            {
                _db.AddRange(TestData.Sections);
                db.ExecuteSqlRaw("SET IDENTITY_INSERT [dbo].[ProductSection] ON");
                _db.SaveChanges();
                db.ExecuteSqlRaw("SET IDENTITY_INSERT  [dbo].[ProductSection] OFF");

                db.CommitTransaction();
            }

            using (var transaction = db.BeginTransaction())
            {
                _db.AddRange(TestData.Brands);
                db.ExecuteSqlRaw("SET IDENTITY_INSERT  [dbo].[ProductBrand] ON");
                _db.SaveChanges();
                db.ExecuteSqlRaw("SET IDENTITY_INSERT  [dbo].[ProductBrand] OFF");
                transaction.Commit();
            }

            using (db.BeginTransaction())
            {
                _db.AddRange(TestData.Products);
                db.ExecuteSqlRaw("SET IDENTITY_INSERT  [dbo].[Products] ON");
                _db.SaveChanges();
                db.ExecuteSqlRaw("SET IDENTITY_INSERT  [dbo].[Products] OFF");
                db.CommitTransaction();
            }
        }