/ / ServiceStack OrmLite É um erro usar UserAuthRepository.CreateUserAuth dentro de uma transação - servicestack, ou servidestack de mlite

ServiceStack OrmLite É um erro usar UserAuthRepository.CreateUserAuth dentro de uma transação - servicestack, ou servidestack de mlite

Eu tenho um fluxo de trabalho complexo onde eu quero criar linhas em várias tabelas em uma transação. Uma das operações é criar um novo UserAuth (do recurso ServiceStack Authentication).

Eu suponho que todas as operações do banco de dados em umtransação deve operar na mesma conexão, e se isso for verdade, então eu acho que pode ser um problema para chamar UserAuthRepository.CreateUserAuth dentro de uma transação porque parece que ele usa sua própria conexão.

Então, minha pergunta é se a criação de umUserAuth fará parte da transação ou não quando eu tiver código como mostrado abaixo. E se não, como criar novos usuários como parte de uma transação?

  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();
}
}

Respostas:

3 para resposta № 1

Internamente, sempre que o ServiceStack requer o acesso a um banco de dados, por OrmLiteUserAuthRepository.CreateUserAuth ele pede e usa uma nova conexão e imediatamente descarta uma vez que é feito.

Atualmente, não há como separar uma transação personalizada.