public void AddProducts() { TransactionScope scope = new TransactionScope(); using (var db = new DbNorthwind(providerName, connectionString)) { List <Product> productList = GetProductList(); foreach (var product in productList) { Category category = db.Categories.FirstOrDefault(c => c.Name == product.Category.Name); Supplier supplier = db.Suppliers.FirstOrDefault(s => s.CompanyName == product.Supplier.CompanyName); if (category == null) { //если такой категории не существует то заносим ее в бд и получаем её id product.CategoryId = db.InsertWithInt32Identity(new Category { Name = product.Category.Name }); } else { product.CategoryId = category.Id; } if (supplier == null) { product.SupplierId = db.InsertWithIdentity(new Supplier { CompanyName = product.Supplier.CompanyName }).ToString(); } else { product.SupplierId = supplier.Id; } } db.BulkCopy(productList); #region Demonstration foreach (var product in productList) { foreach (var item in db.Products.LoadWith(p => p.Supplier).LoadWith(p => p.Category).Where(p => p.Name == product.Name)) { Console.WriteLine($" Product name: {item.Name} Supplier name: {item.Supplier.CompanyName} Category name: {item.Category.Name}"); } } #endregion scope.Dispose(); } }
public void AddNewEmployee() { Employee employee = new Employee() { FirstName = "Evgeniy", LastName = "Chernyshkov", BirthDate = new DateTime(1996, 3, 10) }; TransactionScope scope = new TransactionScope(); using (var db = new DbNorthwind(providerName, connectionString)) { employee.Id = db.InsertWithInt32Identity(employee); db.Territories.Take(3).Insert(db.EmployeeTerritories, et => new EmployeeTerritory() { EmployeeId = employee.Id, TerritoryId = et.Id }); #region Demonstration var empl = db.Employees.First(e => e.Id == employee.Id); Console.WriteLine($"{ empl.FirstName} {empl.LastName}"); var territories = db.EmployeeTerritories.LoadWith(e => e.Territory).Where(ter => ter.EmployeeId == employee.Id); foreach (var terr in territories) { Console.WriteLine(terr.Territory.TerritoryDescription); } #endregion scope.Dispose(); } }