コード例 #1
0
        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();
            }
        }
コード例 #2
0
        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();
            }
        }