EF查询到流畅的nhibernate查询

时间:2012-06-02 10:36:51

标签: asp.net nhibernate fluent

我有EF查询:

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

如何用Session.CreateCriteria<>在流畅的nhibernate查询中编写它? (我的问题是加入)

1 个答案:

答案 0 :(得分:1)

这里有一个很好的答案 - 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;

因此,将上述示例应用于您的查询可能会起作用:

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

但是,为了帮助您更好地理解您遇到的问题,您可以发布您所拥有的内容吗?