protected virtual EntityType ResolveEntityType([NotNull] string entityTypeName)
        {
            if (DeclaringEntityType.Name == entityTypeName)
            {
                return((EntityType)DeclaringEntityType);
            }

            if (RelatedEntityType.Name == entityTypeName)
            {
                return((EntityType)RelatedEntityType);
            }

            if (DeclaringEntityType.DisplayName() == entityTypeName)
            {
                return((EntityType)DeclaringEntityType);
            }

            if (RelatedEntityType.DisplayName() == entityTypeName)
            {
                return((EntityType)RelatedEntityType);
            }

            if (DeclaringEntityType.HasSharedClrType &&
                DeclaringEntityType.ShortName() == entityTypeName)
            {
                return((EntityType)DeclaringEntityType);
            }

            return(RelatedEntityType.HasSharedClrType && RelatedEntityType.ShortName() == entityTypeName
                ? (EntityType)RelatedEntityType
                : null);
        }