мне очень интересно, если есть чистый способ сделать этоВставка Связанные записи в базу данных с помощью Entity Framework
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 равно нулю - я бы любите, чтобы иметь возможность сделать это таким образом, ВМЕСТО, чтобы сделать несколько db.TableName.Add/db.SaveChanges, потому что, если я правильно его понимаю, EF создает транзакцию, чтобы, если что-то не получилось, вы не будете иметь записи фантомного продукта, вставленные без изображений продуктов - если это имеет смысл?
Я уверен, что вы можете сделать это с помощью только одного 'db.SaveChanges()', независимо от того, сколько объектов вы добавили или каковы их отношения. – Bobson