public TypeMap ResolveTypeMap(TypePair typePair) { var typeMap = _typeMapPlanCache.GetOrAdd(typePair, _ => GetRelatedTypePairs(_) .Select(tp => PrimitiveExtensions.GetOrDefault(_typeMapPlanCache, tp) ?? FindTypeMapFor(tp)) .FirstOrDefault(tm => tm != null)); return(typeMap); }