public string GetTailColumnName()
{
if (this.VisitedProperties.Length == 0)
{
throw new InvalidOperationException();
}
if (this.tailColumnName == null)
{
this.tailColumnName = string.Concat(this.VisitedProperties.Skip(1).Select(c => c.PrefixName));
if (this.VisitedProperties.Length == 1)
{
this.tailColumnName += this.DefinitionProperty.PersistedName;
}
else
{
this.tailColumnName += this.DefinitionProperty.SuffixName;
}
}
return this.tailColumnName;
}