Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Présentation

  • : Romagny13 - Du .NET,du pur .NET
  • Romagny13 - Du .NET,du pur .NET
  • : Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
  • Contact

Recherche

Articles Récents

24 mai 2007 4 24 /05 /mai /2007 23:55
NHibernate - Expressions
NHibernate n’est pas parfait, je pense qu’il rajoute de la complexité inutilement
Notamment au niveau de  la gestion des connexions, trop complexe pour ce qu’elle est,
d’un autre côté NHibernate dispose quand même de pas mal de qualités(une fois son utilisation mieux maitrisée), par exemple le mapping est fait par fichier Xml
Nhibernate dispose également d’un système de requêtage qui ressemble un peu à ce que l’on peut faire avec Linq
On peut ajouter des critères de sélection « en cascade » , des tris …
Ex :
Je sélectionne tous les contacts de la table contact pour un ContactCategoryID(clé étrangère), et je trie sur ContactName, puis je fais appel à la méthode List() (oui cela ressemble vraiment à Linq ici) ce qui me retourne une liste
 private void button2_Click(object sender, EventArgs e)
        {
            ContactsHib.ContactDAO c = new ContactsHib.ContactDAO();
 
            System.Collections.IList List = c.MonCritere(Convert.ToInt32(comboBox1.Text));
 
            dataGridView1.DataSource = List;
        }
 
Dans ContactDAO je me crée une petite fonction
 public IList MonCritere(int ContactCategoryID)
        {
            ISession session = factory.OpenSession();
            IList List = session.CreateCriteria(typeof(ContactEntity))
           .Add(NHibernate.Expression.Expression.Eq("ContactCategoryID", ContactCategoryID))
           .AddOrder(Order.Desc("ContactName"))
           .List();
          
 
            return List;
        }
 
C’est un système de requetage interessant qui ressemble un peu à ce que  j’aimerais mettre en place dans un projet personnel

Partager cet article

Repost 0

commentaires