Lassé de devoir écrire à la main le résultat de mes requêtes sur mes objets métier, j'ai créé cette classe qui se charge de tout toute seule...
En prime, elle est capable de construire les 4 requêtes de base (SELECT, UPDATE, DELETE, INSERT) toute seule.

Comment ça marche ?

En bien pour faire simple, vous devez tagger les classes représentant vos objects métier avec des attributs [MafTableBinding] et [MafColumnBinding]... ensuite, vous instanciez un binder via la classe générique Binder<T>... après, c'est tout simple :p

Voici un exemple d'utilisation :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Exemple d'utilisation (à partir de la classe Comment présent dans le projet) :
DbConnection dbConnection;
Binder<Comment> commentBinder;
dbConnection = DbProviderFactories.GetFactory("System.Data.SqlClient").CreateConnection();
dbConnection.ConnectionString = @"Data Source=[...]";
commentBinder = new Binder<Comment>(this.dbConnection);
// Chargement d'une collection :
List<Comment> comments = commentBinder.GetAll();
// Chargement d'un seul commentaire :
Comment comment;
PrimaryKeyParameters pkp = commentBinder.GetPrimaryKeyParameters();
pkp["@comments_id"].Value = 999;
comment = commentBinder.GetSingle(pkp);
// Suppression d'un commentaire
commentBinder.Delete(comment);
// Modification d'un commentaire
comment.Commentaire = "Bla bla...";
commentBinder.Update(comment);

Vous pourrez retrouver cette classe sur CSharpFR à l'adresse suivante : http://www.csharpfr.com/codes/MAFBINDERHELPER-CLASSE-BINDER-AUTOMATIQUEMENT-VOS-CLASSES-SUR-VOS_46970.aspx

Technorati Tags: ,,