gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:25:16 24 4
gpt4 key购买 nike

我正在使用 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){}
}
}

如果 update SubmitChanges 抛出异常,insert SubmitChanges 也会回滚吗?

最佳答案

所有更改都将回滚,而不仅仅是最后一次 SubmitChanges() 中的更改。

当您拥有依赖于其他数据的数据时,您通常需要使用此模式——例如,如果您需要创建一个对象并获取其自动生成的 ID 以执行其他操作(尽管 L2SQL 支持通过一个 SubmitChanges 调用来实现这一点)大多数场景只是通过创建对象,但我离题了......)。

关于.net - 使用 Linq To SQL 进行多次 SubmitChanges 和事务回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1636647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com