У меня есть следующая структура таблицы, которую я хочу реализовать с помощью NHibernate:
Table_ (x):
ID (PK),
Field1,
Field2,
...
(В базе данных есть несколько таблиц (x) с та же структура)
Поля таблиц:
Parent_ID (PK / FK),
Index_ID (PK / FK),
FieldA,
FieldB,
...
Все таблицы Table_(x)
могут быть сопоставлены с TableFields
.
Столбец TableFields.Parent_ID
относится к столбцу идентификатора в таблица Table_(x)
.
TableFields.Index_ID
всегда является постоянным значением, но зависит от бизнес-объекта доступа.
Теперь я хочу реализовать эту структуру таблицы в NHibernate с помощью MappingByCode.
На данный момент мои сопоставления выглядят:
public class Table_1
{
Id(x => x.ID);
Property(x => x.Index, x => x.Formula("(...)"));
OneToOne(x => x.Fields, x => { ... });
//map the properties
}
public class TableFields
{
ComposedID(x => { //map the pk columns });
//map the properties
}
Если я запускаю приложение, я получаю следующее сообщение об ошибке:
неработающее сопоставление столбцов для: ... ожидает 2 столбца, но 1 был сопоставлен
Как я могу «сопоставить» формулу x.Index в сопоставлении One-To-One, чтобы у меня было два параметра «pk / fk»?
Большое спасибо, Кирито,