ObjectContext.SaveChanges ACIDIC?

时间:2011-09-28 15:13:38

标签: entity-framework

如标题所示,以下代码是否呈酸性,例如:如果我调用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包装块吗?

1 个答案:

答案 0 :(得分:2)

using(DBEntities ctx = new DBEntities())
{
    for(int i = 0; i < 10; i++)
    {
        ctx.Products.Add(new Product("Product " + (i + 1)));
    }
    ctx.SaveChanges();
}

此SaveChanges()调用将自动进入事务。您不必将其包装在新的事务管理器下。