我有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查询中编写它?
(我的问题是加入)
答案 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);
但是,为了帮助您更好地理解您遇到的问题,您可以发布您所拥有的内容吗?