Как сопоставить составной первичный ключ с внешним в беглом nhibernate? - PullRequest
3 голосов
/ 16 декабря 2010

У меня есть следующие таблицы:

table A:

 FOO (PK) | CLIENT (PK)

table B:

 BAR (PK) | CLIENT (PK/FK) | FOO (FK)

PK -> первичный ключ

FK -> внешний ключ

Между А и Б. существует отношение один ко многим. Я не могу просто сделать это:

class AMap
{
    public AMap()
    {
        CompositeId().KeyReference(a => a.FOO)
                     .KeyReference(a => a.CLIENT);
        HasMany(a => a.B);
    }
}


class BMap
{
    public BMap()
    {
        CompositeId().KeyReference(a => a.BAR)
                     .KeyReference(a => a.CLIENT);
        References(a => a.A);
    }
}

Сбой произойдет со следующим исключением:

Внешний ключ (FKE7804EB3DA7EBD4B: B [FOO])) должен иметь такое же количество столбцов, что и первичный ключ, на который есть ссылка (A [FOO, CLIENT])

Можно ли правильно сопоставить это с беглым nhibernate?

1 Ответ

6 голосов
/ 16 декабря 2010

Нашли решение:

HasMany(a => a.B).KeyColumns.Add("FOO", "CLIENT").Cascade.All(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...