如何取消SaveChanges

时间:2011-07-12 20:13:07

标签: c# entity-framework entity-framework-4 savechanges

我首先创建SaveChanges并飞过异常(UpdateException)。 然后我做了第二次SaveChanges和againe fliyng第一次erorr。 该怎么办

bool isUpdate = false;
var resource = new Resource() { url = tbUrl.Text };
//block1
try
{
    context.Resource.AddObject(resource);
    context.SaveChanges();
    isUpdate = true;
}
catch (UpdateException ex)
{

}

//block2
if (!isUpdate)
{
    resource = (from res in context.Resource where res.url == tbUrl.Text select res).First();
    context.NameToResourcer.AddObject(new NameToResourcer()
                    {
                        id_resource = resource.id,
                        name = tag
                    });
    context.SaveChanges();//error!
}

1 个答案:

答案 0 :(得分:2)

您对SaveChanges的来电应包含在交易中。通常使用TransactionScope。然后,如果其中一个对SaveChanges的调用失败,您可以回滚该事务。


编辑:

有些示例,请参阅以下2个MSDN页面:

System.Transactions.TransactionScope Class

How to: Manage Transactions in the Entity Framework