Xin chào tất cả các chuyên gia NHibernate!Hạn chế đối với bộ sưu tập có sự tháo rời bằng cách sử dụng NHibernate QueryOver
Với hai loại cổ phiếu này:
public class User {
long Id;
string Name;
}
public class Project {
long Id;
User Owner;
IList<User> Managers;
...
}
Tôi muốn làm một truy vấn sử dụng QueryOver (không sử dụng tiêu chí "kỳ diệu chuỗi" bí danh), để có được tất cả các dự án có user1 như Chủ đầu tư HOẶC như một trong những người quản lý.
Tôi biết làm thế nào để riêng:
- dự án get có user1 như Chủ đầu tư:. Session.QueryOver <> Dự án >>() ở đâu (p => p.Owner == user1)
- get như một người quản lý:. session.QueryOver <>() JoinAlias (p => p.Managers,() => Quản lý) .Where (() => Quản lý == user1)
nhưng I don' t biết làm thế nào để viết các disjunction.
Nếu ai đó có ý tưởng, nó sẽ giúp tôi rất nhiều.
Cảm ơn trước,
Chris
Cảm ơn, Trong thực tế chúng ta phải thực hiện bình đẳng về ID của đối tượng và không phải trên đối tượng .Where (w => manager.Id == user1.Id || w.Owner.Id == user1.Id) Làm thế nào, điều này không đưa ra kết quả mong đợi vì nó tham gia bên trong giữa Dự án và Người dùng, và do đó, không nhận các dự án có user1 làm chủ sở hữu nhưng chưa có bất kỳ người quản lý nào :( – Chris
Xin lỗi tôi không chắc chắn 100% những gì bạn muốn lọc và bạn không đề cập đến việc bạn muốn tham gia ... – Rippo
Đừng xin lỗi, bạn không thể biết :) .Left.JoinAlias (...) đã làm các trick. Cảm ơn rất nhiều Rippo! – Chris