IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NHibernate Discussion :

utiliser les expressions régulière avec NHibernate


Sujet :

NHibernate

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    avril 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2012
    Messages : 90
    Points : 60
    Points
    60
    Par défaut utiliser les expressions régulière avec NHibernate
    Bonjour,

    J'ai un projet dans lequel j'utilise NHibernate pour venir interroger ma base postgre.
    L'exemple suivant est associé à un filtre avec lequel je peux interroger ma base en fonction de plusieurs champs avec le comparateur =

    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
     
    using (ISession session = NHibernateSessionProvider.GetSession())
                        {
                            // Good thing, count and results are retrieve in the same transaction
                            using (ITransaction transaction = session.BeginTransaction())
                            {
                                // FutureValue is used to execute two requests in one database call (or round-trip) 
                                IFutureValue<int> count = session.CreateCriteria(typeof(TUser))
                                              .SetProjection(Projections.Count(Projections.Id()))
                                              .FutureValue<int>();
     
                                ICriteria userItems = session.CreateCriteria(typeof(TUser));
                                if (userId != "none")
                                {
                                    userItems.Add(Restrictions.Eq("UserLogin", userId));
                                }
                                if (userEmail != "none")    
                                {
                                    userItems.Add(Restrictions.Eq("UserEmail", userEmail));
                                }
                                if (groupName != "none")
                                {
                                    userItems.Add(Restrictions.Eq("TGroup", userGroup));
                                }
                                userItems.CreateAlias("TGroup", "TGroup", JoinType.LeftOuterJoin);    // Load group info, even if there's no group attached, first parameter correspond to the table name, second parameter is the alias (same value for simplicity) 
                                userItems.Future<TUser>();
     
                                recordsCount = count.Value;
                                result = userItems.List<TUser>();
     
                                // End transaction
                                transaction.Commit();
                            }
                        }
    Jusque là tout marche bien.

    Je dois à présent trouver une solution pour permettre à ma recherche d'utiliser les expression régulière.

    Je n'arrive pas trouver une solution de remplacement à Restrictions.Eq() qui permettrait de mettre en place une sorte de Regex.Match()

    J'ai tenté avec Restrictions.Like() mais cela ne semble pas marcher et je suis un peu dépourvu...

    Quelqu'un a-t-il eu à implémenter ceci?

    Cordialement,
    Christophe.

  2. #2
    Membre expérimenté
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2009
    Messages : 618
    Points : 1 454
    Points
    1 454
    Billets dans le blog
    9
    Par défaut
    tu peux utilisé les expressions Lambda c'est plus pratique

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/09/2012, 14h44
  2. Réponses: 2
    Dernier message: 04/10/2010, 21h00
  3. Update en utilisant les expressions régulières ?
    Par Christophe Charron dans le forum Requêtes
    Réponses: 4
    Dernier message: 16/12/2008, 16h39
  4. Réponses: 3
    Dernier message: 22/05/2008, 22h22
  5. Réponses: 6
    Dernier message: 14/12/2007, 23h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo