Свободный NHibernate отображает составной идентификатор из унаследованных составных идентификаторов - PullRequest
2 голосов
/ 10 ноября 2009

Допустим, у меня есть существующая база данных со следующими 3 таблицами:

Table1:
(PK) T1ID1
(PK) T1ID2

Table2:
(PK) T2ID1

Table3:
(FK) T1ID1
(FK) T1ID2
(FK) T2ID1 (где три ключа взяты из таблиц выше)

Мой вопрос: как мне сопоставить Table3 с Fluent NHibernate?
Что меня смущает, так это то, что нужно делать с тем фактом, что его составные ключи происходят из 2 разных таблиц.

У меня есть следующее для сопоставлений для таблиц 1 и 2:

public class Table1
{
    public virtual long T1ID1 { get; set; }
    public virtual long T1ID2 { get; set; }
}

public class Table2
{
    public virtual long T2ID1 { get; set; }
}

public class Table1Map
{
    public Table1Map()
    {
        Table("Table1");

        CompositeId()
            .KeyProperty(x => x.T1ID1, "T1ID1")
            .KeyProperty(x => x.T1ID2, "T1ID2");
    }
}

public class Table2Map
{
    public Table2Map()
    {
        Table("Table2");

        Id(x => x.T2ID1, "T2ID1");
    }
}

1 Ответ

1 голос
/ 02 марта 2010

попробуйте посмотреть Свободный NHibernate и составной идентификатор с именем одного столбца Я думаю, что вы ищете это свойство ".KeyReference ()". Ссылка выше использует старую версию FNH, но все, что вам нужно беспокоиться, в связи с вашей проблемой, это то, что имена методов немного отличаются. все остальное в этой статье должно вам помочь.

Дайте мне знать, как вы идете.

...