protected virtual string GetMemberName(IMetadataNode member) { if (member is EntityField) return ((EntityField)member).Name; if (member is IndexField) return ((IndexField)member).Name; if (member is Link) return ((Link)member).Name; throw new InvalidOperationException("Unrecognized member type: " + member.GetType().ToString()); }