Пример #1
0
    public static void Main()
    {
        using (var context = new ProductsContext())
        {
            // Create a clean database each time
            // Notice that indexer properties result in columns in the database, like normal properties
            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();

            var beverages = new Category
            {
                Id          = 1,
                Name        = "Beverages",
                Description = "Stuff to sip on"
            };

            var foods = new Category
            {
                Id          = 2,
                Name        = "Food",
                Description = "Stuff to nibble on"
            };

            var marmite = new Product
            {
                Id              = 1,
                Name            = "Marmite",
                ["Description"] = "Yeasty stuff", // Values set using the indexer
                ["Price"]       = 5.99m,
                ["CategoryId"]  = 1
            };

            var bovril = new Product
            {
                Id              = 2,
                Name            = "Marmite",
                ["Description"] = "Beefy stuff",
                ["Price"]       = 4.99m,
                ["CategoryId"]  = 1
            };

            context.AddRange(beverages, foods, marmite, bovril);

            context.SaveChanges();
        }

        using (var context = new ProductsContext())
        {
            var products = context.Products.ToList();

            // Show what we loaded
            Console.WriteLine();
            Console.WriteLine();
            foreach (var product in products)
            {
                var category = context.Categories.Find(product["CategoryId"]);
                Console.WriteLine($"Product \"{product.Name}\" belongs to category {category.Name}");
            }
        }
    }
Пример #2
0
        private async Task Refresh(IProductService productService)
        {
            _logger.LogInformation($"Started Refresh Products; Retailer: {productService.Retailer}");

            var products = await productService.GetProductsAsync();

            var dbProducts = _mapper.Map <IEnumerable <Product> >(products);

            var retailer = GetOrSetRetailer(productService.Retailer);

            foreach (var product in dbProducts)
            {
                product.Retailer = retailer;
            }

            using (var transaction = _productsContext.Database.BeginTransaction())
            {
                var deleteProducts = _productsContext.Products.Where(p => p.Retailer.RetailerId == retailer.RetailerId);
                _productsContext.RemoveRange(deleteProducts);
                _productsContext.AddRange(dbProducts);
                _productsContext.SaveChanges();

                transaction.Commit();
            }

            _logger.LogInformation($"Completed Refresh Products; Retailer: {productService.Retailer}");
        }