declaration d'interface IUnitOfWork
Bonjour,
J'ai crée la classe UnitOfWork suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Repository.Interface_Paris;
using Repository;
using System.Data.SqlClient;
namespace Repository.Classes_Paris
{
//public class UnitOfWork:IUnitOfWork<SqlContext>
public class UnitOfWork
{
SqlContext Context = null;
SqlTransaction sqlTx = null;
public UnitOfWork(Connexion connectionUOW, bool useTransaction) {
Context=new SqlContext();
Context.sqlcontextConnection = connectionUOW;
}//fin de constructeur
public void CreateTransaction()
{
//BeginTransaction() renvoie la transaction créée
sqlTx= Context.sqlcontextConnection.sqlConnection.BeginTransaction();
}
public SqlConnection GetConnection() {
return Context.sqlcontextConnection.sqlConnection;
}
public SqlTransaction GetTransaction()
{
return sqlTx;
}
public void Commit() {
sqlTx.Commit();
}
public void Rollback()
{
sqlTx.Rollback();
}
public void Save(string TransactionSavePointName)
{
sqlTx.Save(TransactionSavePointName);
}//fin de save
}//fin de classe
}//fin de namespace |
Je souhaiterais créer l'interface correspondante mais ai un peu de mal avec les classes héritées
Voici les différents essais que j'ai faits mais les types génériques utilisés ne collent pas si je declare la classe UnitOfWork ainsi
Code:
1 2 3 4 5 6 7 8 9 10 11
|
using System.Text;
using System.Threading.Tasks;
using Repository.Interface_Paris;
using Repository;
using System.Data.SqlClient;
namespace Repository.Classes_Paris
{
public class UnitOfWork:IUnitOfWork<SqlContext> |
.J'ai fait plusieurs essais comme cela apparaît ci-dessous mais finalement ai renoncé à déclarer la classe UnitOfWork en la faisant hériter d'une interface.
Merci beaucoup à vous de bien vouloir m'aider à résoudre cette situation pour que cela "colle" .
Bien cordialement.
new_wave
ps: j'ai supprimé les using pour ne pas brouiller le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
namespace Repository.Interface_Paris
{
//public interface IUnitOfWork<out TContext> where TContext : DbContext,new()
//public interface IUnitOfWork<out TContext> where TContext : DbContext, new()
public interface IUnitOfWork<out T> where T : class
{
//The following Property is going to hold the context object
T Context{ get; }
//Start the database Transaction
void CreateTransaction();
T GetConnection();
T GetTransaction();
//Commit the database Transaction
void Commit();
//Rollback the database Transaction
void Rollback();
//DbContext Class SaveChanges method
void Save();
}//fin d'Interface
}//fin de Namespace |