Как следует из заголовка, является ли следующий код кислотным, например, если я вызову SaveChanges, будут ли выполняться все операторы Product.Add INSERT (или откатываться в случае ошибки).
using(DBEntities ctx = new DBEntities())
{
for(int i = 0; i < 10; i++)
{
ctx.Products.Add(new Product("Product " + (i + 1)));
}
ctx.SaveChanges();
}
MSDN состояния:
SaveChanges работает в рамках транзакции.SaveChanges откатит эту транзакцию и выдаст исключение, если какой-либо из грязных объектов ObjectStateEntry не может быть сохранен.
Однако, глядя на профилировщик, похоже, это не так.Нужно ли мне обернуть блок TransactionScope?