トランザクションでは、何度もSaveChanges()を呼び出すか、一度だけ呼び出す必要がありますか?EF6トランザクション内の複数のSaveChanges関数の呼び出し
これらの違いは何ですか? ありがとうございました。
Commit()関数の前にSaveChanges()を1回だけ書くことはできますか?
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 });
}
}