0

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

流暢なnhibernateクエリでそれを書く方法はSession.CreateCriteria<>?(私の問題はJoinにあります)

4

1 に答える 1

1

ここにフィルによる良い答えがあります -QueryOverと の結合の例があるNHibernate QueryOver with ManytoMany

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

しかし、あなたが抱えている問題をよりよく理解するのを助けるために、あなたが試みたことを投稿していただけますか?

于 2012-06-02T11:00:24.790 に答える