¿Puedo hacer una convención de clave externa con fluidez NHibernate que incluya el nombre de la clave principal?

Tengo un esquema de base de datos donde la convención para el nombre de una clave externa es:

ForeignTable.Name + ForeignTable.PrimaryKeyName

Entonces, por unChild tabla que hace referencia aParent tabla con una columna de clave principal denominadaKey, la clave externa se verá comoParentKey.

¿Hay alguna forma de crear esta convención en mi mapeo de NHibernate fluido?

Actualmente estoy usando unForeignKeyConvention implementación como esta:

public class ForeignKeyNamingConvention : ForeignKeyConvention
{
    protected override string GetKeyName(PropertyInfo property, Type type)
    {
        if (property == null)
        {
            // Relationship is many-to-many, one-to-many or join.
            if (type == null)
                throw new ArgumentNullException("type");

            return type.Name + "ID";
        }

        // Relationship is many-to-one.
        return property.Name + "ID";
    }
}

Esto funciona exactamente como quiero para todos los tipos que tienen "ID" como clave principal. Lo que me gustaría hacer es reemplazar la "ID" constante con el nombre de la clave primaria del tipo al que se hace referencia.

Si esto no es posible actualmente con NHibernate fluido, estoy feliz de aceptar esa respuesta.

Respuestas a la pregunta(3)

Su respuesta a la pregunta