具有2个子查询的nhibernate查询

时间:2013-03-13 14:42:28

标签: c# .net nhibernate nhibernate-criteria

我在使用下面的代码时遇到了一些麻烦:

如何返回两种情况的案例列表:

  1. 用户必须有权访问org - 然后他们才能看到该组织的所有内容

  2. 用户是案件的合作者 - 他们可以看到他们正在合作的所有内容

  3. 我的查询:

    public static IEnumerable<Project> GetMyProjects(this ISession session, User user)
        {
            Project alias = null;
            return session.QueryOver<Project>(() => alias)
                .WithSubquery.WhereExists(QueryOver.Of<OrganizationMember>()
                             .Where(o => o.UserId == user.UserID &&
                                         (o.OrganizationId == alias.OwnerID || o.OrganizationId == alias.SurveyingFirmID ||
                                         o.OrganizationId == alias.LenderID || o.OrganizationId == alias.OriginatorID))
                             .Select(x => x.OrganizationId))                         
                .WithSubquery.WhereExists(
                             QueryOver.Of<Collaborator>()
                                      .Where(c => c.UserId == user.UserID && c.Id== alias.Id)
                                      .Select(x=> x.UserId))
                   .Select(x => x)
                   .Future<Project>();
        }
    

    我还希望以 IQueryable 而不是IEnumerable返回结果 - 我该怎么做?

0 个答案:

没有答案