/// <summary> /// To use multi criteria to eagerly load multiple child collection, if the first detached criteria has child collection to query, /// then must use .SetResultTransformer(new DistinctRootEntityResultTransformer() for the first detached criteria /// </summary> /// <param name="multiCriteria">The multi criteria.</param> /// <param name="detachedCriteria">The detached criteria.</param> /// <param name="orders">The orders.</param> /// <param name="returnDistinctRoot">If set to <c>true</c> [return distinct root].</param> /// <returns>A <see cref="IMultiCriteria"/></returns> public static IMultiCriteria AddDetachedCriteria( this IMultiCriteria multiCriteria, DetachedCriteria detachedCriteria, IEnumerable <Order> orders = null, bool returnDistinctRoot = false) { if (orders != null && orders.Count() > 0) { detachedCriteria.AddOrders(orders); } if (returnDistinctRoot) { detachedCriteria = detachedCriteria.SetResultTransformer(new DistinctRootEntityResultTransformer()); } multiCriteria.Add(detachedCriteria); return(multiCriteria); }