Limit on collection with disjunction using NHibernate QueryOver

Hello to all NHibernate gurus!

Given these two classes:

public class User {
    long Id;
    string Name;
}

public class Project {
    long Id;
    User Owner;
    IList<User> Managers;
    ...
}

I would like to query using QueryOver (without using the "magic string" aliases) to get all projects that have user1 as Owner OR , as one of the Managers.

I know how separately:

  • get projects named user1 as Owner: session.QueryOver <> Project → (). Where (p => p.Owner == user1)
  • get as manager: session.QueryOver <> (). JoinAlias ​​(p => p.Managers, () => manager) .Where (() => manager == user1)

but I do not know how to write a disjunction .

If anyone had an idea, that would help me a lot.

Thanks in advance,

Chris

+5
1

- : -

User manager = null;

var query = session
    .QueryOver<Project>()
    .JoinAlias(j => j.Managers, () => manager)
    .Where(w => manager.Name == user1 || w.Owner == user1)
    .List<Project>();

, Name Id ( OP): -

.Where(w=>manager.Id == user1.Id || w.Owner.Id == user1.Id)

edit2, .

.JoinAlias(j => j.Managers, () => manager).left
+2

All Articles