В транзакции я должен вызывать много раз SaveChanges() или просто звонить один раз?EF6 Множественные вызовы Функция SaveChanges в транзакции
В чем разница между ними? Большое спасибо.
Могу ли я написать один раз SaveChanges() перед функцией Commit()?
using (var transaction = entities.Database.BeginTransaction())
{
try
{
var product = entities.Product.Add(new Product()
{
Name = name,
Shape = shape
});
entities.SaveChanges(); // here
foreach (var image in images)
{
entities.Image.Add(new Image()
{
ProductId = product.Id,
Url = image
});
}
entities.SaveChanges(); // here
foreach (var specification in specifications)
{
entities.Specification.Add(new Specification()
{
Name = specification.Split(',')[0],
Value = specification.Split(',')[1].AsDecimal(),
ProductId = product.Id
});
}
entities.SaveChanges(); // here
transaction.Commit();
}
catch (Exception)
{
transaction.Rollback();
return Json(new { status = false });
}
}