我在尝试编写一些QueryOver查询时遇到了问题。我有一个实体Branch,它有一个Users实体列表 - 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,这意味着它没有属性,IE我在那里的代码将无法编译,因为Type User的对象具有CreditLimit属性但是类型为ISet的对象,具有count和Add / Remove方法之类的属性。如果我将别名更改为用户类型而不是ISet,那么这只是不起作用,因为我正在使用集合而不是实体。
有没有人对我如何编码这个有任何想法。这是一个非常简化的查询,所以从用户实体开始并加入公司将在上面的代码中工作,但不是在我的现实生活场景中,我有两个加入实体。