internal void DeepLoad(TransactionManager mgr, TList <Entity> entities, bool deep, DeepLoadType deepLoadType, Type[] childTypes, ChildEntityTypesList innerList)
 {
     if (entities == null)
     {
         throw new ArgumentNullException("entities", "A valid non-null, TList<Entity> object is not present.");
     }
     if (!Enum.IsDefined(typeof(DeepLoadType), deepLoadType))
     {
         throw new ArgumentException("A valid DeepLoadType option is not present.", deepLoadType.ToString());
     }
     if (childTypes == null)
     {
         throw new ArgumentNullException("childTypes", "A valid Type[] array is not present.");
     }
     if (deepLoadType != DeepLoadType.Ignore)
     {
         foreach (Entity local in entities)
         {
             this.DeepLoad(mgr, local, deep, deepLoadType, childTypes, innerList);
             innerList.Keys.Remove(local.EntityTrackingKey);
         }
     }
 }
 public virtual void DeepLoad(TransactionManager mgr, TList <Entity> entities, bool deep, DeepLoadType deepLoadType, params Type[] childTypes)
 {
     if (entities == null)
     {
         throw new ArgumentNullException("entities", "A valid non-null, TList<Entity> object is not present.");
     }
     if (!Enum.IsDefined(typeof(DeepLoadType), deepLoadType))
     {
         throw new ArgumentException("A valid DeepLoadType option is not present.", deepLoadType.ToString());
     }
     if (childTypes == null)
     {
         throw new ArgumentNullException("childTypes", "A valid Type[] array is not present.");
     }
     if (deepLoadType != DeepLoadType.Ignore)
     {
         foreach (Entity local in entities)
         {
             this.DeepLoad(mgr, local, deep, deepLoadType, childTypes);
         }
     }
 }