Bonjour,
J'ai crée la classe UnitOfWork suivante :
Je souhaiterais créer l'interface correspondante mais ai un peu de mal avec les classes héritées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
.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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager