1 つのトランザクションで複数のテーブルに行を作成する複雑なワークフローがあります。操作の 1 つは、(ServiceStack 認証機能から) 新しい UserAuth を作成することです。
トランザクション内のすべてのデータベース操作は同じ接続で動作するはずだと思います。それが本当なら、トランザクション内で 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();
}
}