gpt4 book ai didi

sql-server - node.js:创建一个涵盖对多个存储库的调用的事务

转载 作者:搜寻专家 更新时间:2023-10-31 23:20:30 25 4
gpt4 key购买 nike

我习惯于使用 C# 编写代码,有时我创建的事务对不同的存储库有多次调用,如果调用失败,回滚将覆盖每个存储库。

代码是这样的:

using (var scope = new TransactionScope())
{
itemRepository.deleteItems(items);
bookRepository.deleteBooks(books);
scope.Complete();
}

这确保如果 bookRepository 发生错误,删除的项目将回滚。

现在,我正在尝试使用 node.js 做同样的事情。我找到了 mssql可以选择创建事务的包,但仅限于存储库内部,如下所示:

var transaction = new sql.Transaction(/* [connection] */);
transaction.begin(function(err) {
// ... error checks

var request = new sql.Request(transaction);
request.query('insert into mytable (mycolumn) values (12345)', function(err, recordset) {
// ... error checks

transaction.commit(function(err, recordset) {
// ... error checks

console.log("Transaction committed.");
});
});
});

那么,有什么方法可以像我描述的那样在服务上创建一个涵盖多个存储库的事务?

最佳答案

您可以使用名为 Sequelize 的漂亮框架创建事务范围.如果您查看与 transactions 相关的页面,您可以找到一种将事务传递给所有查询的方法。

 sequelize.transaction(function (t1) {
// With CLS enabled, the user will be created inside the transaction
return User.create({ name: 'Alice' });
});

关于sql-server - node.js:创建一个涵盖对多个存储库的调用的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38152217/

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