Kann ich eine Fluent NHibernate-Fremdschlüsselkonvention erstellen, die den Namen des übergeordneten Schlüssels enthält?

Ich habe ein Datenbankschema, in dem die Konvention für den Namen eines Fremdschlüssels lautet:

ForeignTable.Name + ForeignTable.PrimaryKeyName

Also, für eineChild tabellenreferenz aParent Tabelle mit einer Primärschlüsselspalte namensKeywird der Fremdschlüssel so aussehenParentKey.

Gibt es eine Möglichkeit, diese Konvention in meiner Fluent NHibernate-Zuordnung zu erstellen?

Zur Zeit benutze ich eineForeignKeyConvention Implementierung wie folgt:

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";
    }
}

Dies funktioniert genau so, wie ich es mir für alle Typen wünsche, die "ID" als Primärschlüssel haben. Ich möchte die Konstante "ID" durch den Namen des Primärschlüssels des Typs ersetzen, auf den verwiesen wird.

Wenn dies derzeit mit Fluent NHibernate nicht möglich ist, bin ich froh, diese Antwort zu akzeptieren.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage