public class GroupDtoMap : DtoClassMap<GroupDto>
{
public GroupDtoMap()
{
Id(g => g.Id, "group_id");
HasManyToMany(g => g.Members) // Members is a List<UserDto>
.Table("members")
.ParentKeyColumn("group_id")
.ChildKeyColumn("user_id");
}
}QUERY:var groups = ((DtoRepository<GroupDto>)repository).Session
.CreateCriteria<GroupDto>("gr")
.Add(Expression.Eq("gr.IsActive", true))
.Add(Expression.IsNotNull("gr.Members.Id"))
.SetFetchMode("gr.Members", NHibernate.FetchMode.Eager)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.Future<GroupDto>();
TEST: here isfetched is falsevar isFetched = NHibernateUtil.IsInitialized(groups.First().Members);
var groups = ((DtoRepository<GroupDto>)repository).Session .CreateCriteria<GroupDto>("gr") .Add(Expression.Eq("gr.IsActive", true
)) .CreateAlias("groups.Members", "member") .Add(Expression.IsNotNull("member.Id")) .SetFetchMode("gr.Members", NHibernate.FetchMode.Eager) .SetResultTransformer(new DistinctRootEntityResultTransformer()) .Future<GroupDto>();
Session .CreateQuery(@" select gr, member from GroupDto as gr inner join fetch Members as member where IsActive = true and member.Id != null ") .SetResultTransformer(Transformers.DistinctRootEntity) .Future<GroupDto>();
--To view this discussion on the web visit https://groups.google.com/d/msg/nhusers/-/uzulAPuJXxAJ.
You received this message because you are subscribed to the Google Groups "nhusers" group.
To post to this group, send email to nhu...@googlegroups.com.
To unsubscribe from this group, send email to nhusers+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.