Nhibernate NHiberate 3和QueryOver

Nhibernate NHiberate 3和QueryOver,nhibernate,Nhibernate,我在编写查询代码时遇到了一个问题。我有一个实体分支,它有一个用户实体列表-UserList。我已经对QueryOver对象进行了编码,使用别名获得了正确的联接,但请参见代码 Iesi.Collections.Generic.ISet<User> userAlias = null; IQueryOver<Branch, Iesi.Collections.Generic.ISet<User>> userQuery = branchQuery.JoinQueryOv

我在编写查询代码时遇到了一个问题。我有一个实体分支,它有一个用户实体列表-UserList。我已经对QueryOver对象进行了编码,使用别名获得了正确的联接,但请参见代码

Iesi.Collections.Generic.ISet<User> userAlias = null;
IQueryOver<Branch, Iesi.Collections.Generic.ISet<User>> userQuery = branchQuery.JoinQueryOver( branch => branch.UserList , () =:> userAlias ) ;
ProjectionList projections = Projections.ProjectionList().Add(Projections.Sum<Iesi.Collections.Generic.ISet<User>>( user => user.CreditLimit));
我现在的问题是最后一行,是投影。别名被类型化为ISet,这意味着它没有属性,即我在那里的代码将不会编译,因为User类型的and对象具有CreditLimit属性,而ISet类型的对象具有count和Add/Remove方法等属性。如果我将别名更改为用户类型而不是ISet,那么这将不起作用,因为我使用的是集合而不是实体

有人对我如何编写代码有什么想法吗。这是一个非常简化的查询,因此从用户实体开始并加入公司将在上面的代码中起作用,但在我有两个加入实体的实际场景中不起作用