微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net – 使用Linq To SQL进行多个SubmitChanges和事务回滚

我使用TransactionScope将 Linq中的数据提交到sql.我的问题是,如果我在同一个范围内使用多个SubmitChanges,所有范围将在发生错误或仅在最后一个SubmitChanges之后进行更改时回滚?例如:
using (TransactionScope trans = new TransactionScope())
{
    using (dbDataContext db = new dbDataContext())
    {
        try
        {
            //do some insert
            db.SubmitChanges();

            //do some updates
            db.SubmitChanges();

            trans.Complete();
        }
        catch(Exception ex){}
    }
}

如果更新SubmitChanges引发异常,InsertChanges会插入吗?

解决方法

所有更改将回滚,而不仅仅是最后一个SubmitChanges()的更改.

当您有数据取决于其他数据时,您通常需要使用此模式,例如,如果您需要创建一个对象并获取自动生成的ID以便执行其他操作(尽管L2sql支持使用一个SubmitChanges调用大多数场景只是创建对象,但我离题…).

原文地址:https://www.jb51.cc/mssql/75427.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐