我有一个复杂的工作流程,我想在一个事务中在多个表中创建行。其中一项操作是创建一个新的 UserAuth(来自 ServiceStack 身份验证功能)。
我假设事务中的所有数据库操作都应该在同一个连接上运行,如果这是真的,那么我认为在事务中调用 UserAuthRepository.CreateUserAuth 可能是个问题,因为它看起来好像使用自己的连接。
所以我的问题是,当我有如下所示的代码时,创建 UserAuth 是否会成为交易的一部分。如果没有,那么如何在交易中创建新用户?
using (var db = Db.OpenDbConnection()) {
using (var trans = db.OpenTransaction()) {
... do some databae operations via. db ...
var userAuth = UserAuthRepository.CreateUserAuth(
new UserAuth{UserName = "blabla"},
"password"
);
... do some more databae operations via. db ...
trans.Commit();
}
}