protected virtual void Visit(EntityType entityType)
        {
            foreach (var kmember in entityType.KeyMembers)
            {
                Visit(kmember);
            }

            foreach (var member in entityType.GetDeclaredOnlyMembers<EdmMember>())
            {
                Visit(member);
            }

            foreach (var nproperty in entityType.NavigationProperties)
            {
                Visit(nproperty);
            }

            foreach (var property in entityType.Properties)
            {
                Visit(property);
            }
        }