Свободное отображение NHibernate на нескольких не-ПК полях

У меня ситуация, аналогичная описанной вСвободное отображение NHibernate не на ПК поле

Однако связь между моими таблицами описывается несколькими столбцами, не относящимися к первичному ключу. Представь себе Криса МикаСитуация, но гдеPerson имеетJobType иCode что вместедолжен (извини, этобаза данных) уникально опишитеPerson

Person
------
Id PK
JobType
Code
Name

Order
-----
Id PK
Person_JobType
Person_Code
OrderDetails

Серхат Özgel-хответ описывает использованиеPropertyRef, Но я могу'не найти способ сделать это индивидуально для нескольких столбцов. Я'мы пробовали похожие на

class PersonMap : ClassMap
{
    public PersonMap()
    {
        HasMany(p => p.Order)
            .KeyColumns.Add("Person_JobType")
            .PropertyRef("JobType")
            .KeyColumns.Add("Person_Code")
            .PropertyRef("Code")
    }
}

Но это, очевидно, нет работы, так какKeyColumns.Add() возвращает другойOneToManyPart PropertyRef() ISN»запускается против отдельного добавляемого столбца. ВторойPropertyRef() просто перезаписывает первый, и я получаю следующую ошибку:

NHibernate.MappingException : collection foreign key mapping
has wrong number of columns: MyApp.Person.Order type: Int32

мы смотрели на различные перегрузки KeyColumns.Add (),

public TParent Add(string name)
public TParent Add(params string[] names)
public TParent Add(string columnName, Action customColumnMapping)
public TParent Add(ColumnMapping column)

Конкретно последние два, но не моглине могу найти способ установитьPropertyRef индивидуальный уровень для каждого столбца :( Есть ли способ сделать это? Я иду по этому пути совсем неправильно?