public Type GetLazyLoadedEntityType() { if (!IsLazyLoaded) { return(RelationshipInfo.EntityType); } // Generic type: LazyLoaded<TParent, TChild> var genericType = LazyLoaded.GetType(); var tChildArg = genericType.GetGenericArguments()[1]; if (typeof(System.Collections.ICollection).IsAssignableFrom(tChildArg)) { // Is a one-to-many (list) return(tChildArg.GetGenericArguments()[0]); } else { // Is a one-to-one (single entity) return(tChildArg); } }