Dbmap - autogénérer des requettes multibases

Description

en mettant des attributs au dessus des propriétés de vos classes, mon DbMap génere et exécute des requettes sur des bases SqlServer, MySql, ou Oracle.
des insert, delete, update, select, joins

Source / Exemple :


//exemple d'utilisation

List<User> allUsers = dbMap.ListAll<User>();
Console.WriteLine("allUsers : "+ allUsers.Count);

User predicate = new User();
predicate.Name = "d%";
List<User> dUsers = dbMap.ListCustom(predicate, iDbMap.ColumnConditions("USR_NAME"));
Console.WriteLine("allUsers : " + dUsers.Count);

User newUser = new User();
newUser.Name = "newName";
newUser.Pass = "newPass";
newUser.AvatarUrl = "myUrl";
dbMap.Insert(newUser);
dbMap.GetAutoIncremented(newUser);
Console.WriteLine("new Id : " + newUser.Id.ToString());

//test de jointures
//ceci va nous donner les users habitant dans le 92 en remplissant leur ville
//et rempliera seulement leurs voitures immatriculées en 1% de modele R5 

CodePostal cpPred = new CodePostal();
cpPred.Code = "92%";

Voiture vPred = new Voiture();
vPred.Immatriculation = "1%";

ModeleVoiture mvPred = new ModeleVoiture();
mvPred.Nom = "R5";

MapQuery<User> mqU = dbMap.CreateMapQuery<User>();
mqU.AddJoin<CodePostal>("ville", cpPred, iDbMap.PropertyConditions("Code"));
mqU.AddJoinList<Voiture>("voitures", vPred, iDbMap.PropertyConditions("Immatriculation"))
    .AddJoin<ModeleVoiture>("modele", mvPred, iDbMap.PropertyConditions("Nom"));

List<User> users = dbMap.ExecuteQuery(mqU);

Conclusion :


j'ai fait en sorte que les requettes soient addaptées à chaque base de donnée.
pour supporter une nouvelle base de données, il suffit de peu.
il y a maintenant la possibilité de générer des requettes avec des jointures qui remplissent les objects et leurs sous objects.
il y a encore des evolutions à faire, j'attend vos commentaires ;)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.