C# 如何取消保存更改

C# 如何取消保存更改,c#,entity-framework,entity-framework-4,savechanges,C#,Entity Framework,Entity Framework 4,Savechanges,我首先进行SaveChanges和flies异常(UpdateException)。 我做了第二次修改,againe fliyng做了第一次修改。 怎么办 bool isUpdate = false; var resource = new Resource() { url = tbUrl.Text }; //block1 try { context.Resource.AddObject(resource); context.SaveChanges(); isUpdate

我首先进行SaveChanges和flies异常(UpdateException)。 我做了第二次修改,againe fliyng做了第一次修改。 怎么办

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!
}

您对
SaveChanges
的调用应包装在事务中。通常使用
TransactionScope
。然后,如果SaveChanges调用之一失败,您可以回滚事务


编辑:

有关一些示例,请参见以下2个MSDN页面:


我是您听说这一点的地方,您可以取样吗?请参见上面我的答案中的编辑。我添加了一些有示例的有用链接。