gpt4 book ai didi

c# - 如何使用存储过程在 LINQ to SQL 中使用事务?

转载 作者:太空狗 更新时间:2023-10-29 22:07:05 24 4
gpt4 key购买 nike

我有一段代码看起来像这样(ClearImportTable 和 InsertPage 是存储过程):

datacontext.ClearImportTable() //Essentially a DELETE FROM table
for (int i = 1; i < MAX_PAGES; ++i){
datacontext.InsertPage(i); //Inserts data into the table
}

这是我的代码的一个稍微简化的版本,但想法是它在插入记录之前清除表格。唯一的问题是,如果在 ClearImportTable 之后发生错误,表中的所有数据都会被删除。有什么方法可以将其包装在事务中,以便在出现任何错误时,一切都将恢复原状吗?

最佳答案

你可以做一个交易范围:

 using (var transaction = new TransactionScope())
{
// do stuff here...
transaction.Complete();
}

如果发生异常或 using block 未命中 transaction.Complete() 则回滚 using block 内执行的所有操作。

您将需要引用 System.Transactions 程序集。

关于c# - 如何使用存储过程在 LINQ to SQL 中使用事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/940040/

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