私はこれをEFで使用します
var users = Context.CreateSet<User>()
.Select(u => new {
User = u,
Salary = u.Salaries.Where(s => !s.Deleted)
})
.AsEnumerable()
.Select(a => a.User);
NHibernateでこれを行うLinqの方法があり、遅延読み込みによるナビゲーションプロパティの読み込みでも機能するようにしたい