2012-06-02 2 views
0

У меня есть EF Запрос:EF запрос в 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); 

Как писать в беглом запроса NHibernate с Session.CreateCriteria<>? (Моя проблема с Join)

+1

Не существует такой вещи, как запрос «свободно nhibernate». Fluent NHibernate - это API для выражения определений отображения. При запросе используется обычный NHibernate. –

+1

Что мешает вам использовать тот же запрос LINQ с NHibernate? –

ответ

1

Там хороший ответ на Phill здесь - NHibernate QueryOver with ManytoMany, который имеет пример присоединиться QueryOver

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

Он также описывает, как использовать LINQ с запросом через:

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

Так применяя приведенные выше примеры для вашего somethign запроса, как это может работать:

(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); 

Однако, чтобы лучше понять проблему, которую вы имеете, не могли бы вы опубликовать то, что вы подтвердили?

+0

+1 Хороший ответ, –

Смежные вопросы