我很好奇,如果有一個乾淨的方式來做到這一點插入相關記錄到通過實體框架數據庫
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();
我遇到的問題是,product.ProductImages爲空 - 我愛能夠這樣做INSTEAD做多個db.TableName.Add/db.SaveChanges,因爲如果我正確地理解它,EF創建一個事務,以便如果有任何失敗,您將不會幻影產品記錄插入沒有產品圖像 - 如果這是有道理的?
我敢肯定,只需一個'db.SaveChanges()'就可以做到這一點,不管你添加了多少對象或者他們的關係是什麼。 – Bobson