I'm curious if there is a clean way to do this
Product product = new Product(); product.CreateDateTime = DateTime.Now; product.Description = productCreateModel.Product.Description; product.ManufacturerId = productCreateModel.Manufacturer; product.MetaDescription = productCreateModel.Product.MetaDescription; product.MetaTitle = productCreateModel.Product.MetaTitle; product.Name = productCreateModel.Product.Name; product.Status = ProductStatuses.Active; product.URL = productCreateModel.Product.URL; if (productCreateModel.ProductImage1.ContentLength > 0) { BinaryReader binaryReader = new BinaryReader(productCreateModel.ProductImage1.InputStream); product.ProductImages.Add(new ProductImage() { CreateDateTime = DateTime.Now, Image = binaryReader.ReadBytes(productCreateModel.ProductImage1.ContentLength), PrimaryImage = true }); } db.Products.Add(product); db.SaveChanges();
The problem I am facing is that product.ProductImages is null - I would like to make it so that INSTEAD executes multiple db.TableName.Add / db.SaveChanges, because if I understand it correctly EF creates a transaction, so if something doesn’t work out, you won’t have phantom product records inserted without product images - if that makes sense?
99823 source share