Ram*_*ses 5 nhibernate wcf-ria-services
这是场景:
我在"Groups"和"Users"之间建立了一个关联,由"UserGroupAssignment"对象表示.
public class UserGroupAssignment
{
[Key]
public virtual long Id { get; set; }
[Association("UserAssignmentToUser", "UserId", "Id", IsForeignKey = true)]
public virtual User { get; set; }
[Association("UserAssignmentToGroup", "GroupId", "Id", IsForeignKey = true)]
public virtual Group { get; set; }
public virtual bool IsPrimary { get; set; }
public virtual DateTime? ValidFrom { get; set; }
public virtual DateTime? ValidTo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有两个业务逻辑方法,GetUserAssignmentsForGroups和GetGroupAssignmentsForUsers,我返回分配,分别填充用户和组属性.即GetUserAssignmentsForGroup接受GroupId并返回该组的分配,并填充User属性.
我想要的是将这两个方法公开为域查询方法,如下所示:
[Query]
public IQueryable<UserGroupAssignment> GetAssignmentsForGroupWithUsers(long groupId)
{
return this.businessLogic.GetUserAssignmentsForGroups(groupId);
}
[Query]
public IQueryable<UserGroupAssignment> GetAssignmentsForUserWithGroups(long userId)
{
return this.businessLogic.GetGroupAssignmentsForUsers(userId)
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,当业务逻辑方法通过NHibernate返回正确填充的Assignments时,RIA Services不会通过网络传递子实体(用户或组).
我不想在UserAssignment类的User或Group属性上使用[Include]属性,因为我想通过线路最小化有效负载 - 当我只对我感兴趣时,我不想发送组例如,每个UserAssignment的用户.
所以我的问题是:
如何告诉RIA服务在一个域查询方法中明确包含用户子实体,在另一个域实体中明确包含子子实体?
请记住,我在后端使用NHibernate并在RIA Services中使用自定义查询方法,因此无法在客户端查询中使用EF样式包含.
谢谢
乔尔