Свободный NHibernate отображает составной идентификатор из унаследованных составных идентификаторов
Допустим, у меня есть существующая база данных со следующими 3 таблицами:
Таблица 1:
(ПК) T1ID1
(ПК) T1ID2
Таблица 2:
(ПК) T2ID1
Таблица3:
(ФК) T1ID1
(ФК) T1ID2
(FK)T2ID1 (откуда 3 ключа взяты из таблиц выше)
Мой вопрос: как мне сопоставить 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 ответ
Попробуйте взглянуть на Fluent NHibernate и составной идентификатор с именем одного столбца. Я думаю, что вам нужно свойство ".KeyReference()". Ссылка выше использует старую версию FNH, но все, что вам нужно беспокоиться, в связи с вашей проблемой, это то, что имена методов немного отличаются. все остальное в этой статье должно вам помочь.
Дайте мне знать, как вы идете.