我在使用下面的代码时遇到了一些麻烦:
如何返回两种情况的案例列表:
用户必须有权访问org - 然后他们才能看到该组织的所有内容
用户是案件的合作者 - 他们可以看到他们正在合作的所有内容
我的查询:
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返回结果 - 我该怎么做?