2012-06-02 3 views
0

Je EF Question:requête EF requête Fluent NHibernate

IEnumerable<Account> accounts 
     = (
      from a in dc.Accounts 
      join m in dc.GroupMembers on a.AccountID equals m.AccountID 
      where m.GroupID == GroupID && m.IsApproved 
      select a) 
      .Skip((_configuration.NumberOfRecordsInPage * (PageNumber - 1))) 
      .Take(_configuration.NumberOfRecordsInPage); 

Comment écrire dans la requête NHibernate couramment avec Session.CreateCriteria<>? (Mon problème est avec Joignez-vous)

+1

Il n'existe pas de requête «fluent nhibernate». NHibernate fluide est une API pour exprimer les définitions de mappage. Lors de l'interrogation, NHibernate régulière est utilisée. –

+1

Qu'est-ce qui vous empêche d'utiliser la même requête LINQ avec NHibernate? –

Répondre

1

Il y a une bonne réponse par Phill ici - NHibernate QueryOver with ManytoMany qui a un exemple de se joindre à QueryOver

var result = Session.QueryOver<Product>() 
         .Right.JoinQueryOver<Category>(x => x.Categories) 
         .Where(c => c.Id == categoryId) 
         .List(); 

Il décrit également comment utiliser LINQ avec requête sur:

var users = from u in session.Query<Users>() 
     where u.UserName == "Abcd" 
     && u.Password == "123456" 
     select u; 

donc d'appliquer les exemples ci-dessus à votre somethign de requête comme cela pourrait fonctionner:

(from a in session.Query<Account>() 
            join m in session.Query<GroupMember>() on a.AccountID equals m.AccountID 
            where m.GroupID == GroupID && m.IsApproved 
            select a).Skip((_configuration.NumberOfRecordsInPage * (PageNumber - 1))) 
            .Take(_configuration.NumberOfRecordsInPage); 

Cependant, pour vous aider à mieux comprendre le problème que vous rencontrez, pourriez-vous publier ce que vous avez fait?

+0

+1 Bonne réponse, –