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}"); } } }
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}"); }