J'ai un référentiel d'utilisateurs, qui effectue tous les accès aux données des utilisateurs. J'ai également une classe d'unité de travail qui gère la connexion et la transaction pour mes référentiels. Comment puis-je efficacement annuler une transaction sur ma classe d'unité de travail, si une erreur se produit dans mon référentiel ?
Create sur mon UserRepository. J'utilise Dapper pour DataAccess.
try
{
this.Connection.Execute("User_Create", parameters, this.Transaction,
commandType: CommandType.StoredProcedure);
}
catch (Exception)
{
//Need to tell my unit of work to rollback the transaction.
}
Je passe la connexion et la transaction qui ont été créées dans mon constructeur d'unité de travail à mes référentiels. Vous trouverez ci-dessous une propriété de ma classe d'unité de travail.
public UserRepository UserRepository
{
get
{
if (this._userRepository == null)
this._userRepository =
new UserRepository(this._connection, this._transaction);
return this._userRepository;
}
}
J'espère trouver la meilleure approche.
* Mise à jour * Après avoir fait plus de recherches sur le modèle d'unité de travail, je pense que je l'utilise complètement à tort dans mon exemple.