Свободный NHibernate - список сопоставления ‹decimal› для упорядоченной дочерней таблицы

Я занимаюсь рефакторингом беглого отображения nHibernate и не могу понять этого. Я хочу переназначить свойство типа List<decimal> в дочернюю таблицу, но, если возможно, использовать один HasMany.

Прямо сейчас у нас есть: Map(x => x.DecimalList); Что дает нам хороший тип varbinary(8000)

В своих попытках переместить это в упорядоченную дочернюю таблицу я пробовал:

HasMany(x => x.DecimalList)
.Table("ParentTable_DecimalList")
.KeyColumn("Id")
.Element("Amount")
.KeyColumn("ParentId")
.Cascade.AllDeleteOrphan();

И это дает мне связь с двумя столбцами: ParentId и Amount. Единственная проблема заключается в том, что я также хочу поместить столбец Order или Primary Key / ID в дочернюю таблицу, чтобы гарантировать, что мы сохраняем порядок списка, несмотря ни на что.

Есть ли способ добавить столбец с сильным внутренним первичным ключом и / или столбец Порядок, не перенося его на более сложный дочерний объект / карту?


person Alex Moore    schedule 10.11.2011    source источник


Ответы (1)


Отобразить это как список

HasMany(x => x.DecimalList)
...
.AsList(x => x.WithColumn("ListPosition")

По умолчанию он отображается как сумка, что не сохраняет порядок.

person Stefan Steinegger    schedule 10.11.2011
comment
Я пришел к выводу, что наличие такого списка без контейнера дочерних объектов может быть неприятным запахом кода. Если, конечно, список не является действительно списком объектов значений, не имеющих идентичности. В конце концов я переработал макет контейнера дочерних объектов, но все же приятно знать, как это сделать таким образом. Еще раз спасибо! - person Alex Moore; 21.11.2011
comment
Добавление AsList (x = ›x.WithColumn (ListPosition) создает в списке нулевой объект. Любая помощь - person Sahi; 15.09.2017
comment
Задайте новый вопрос. Имейте полный, но минимальный код для воспроизведения проблемы. - person Stefan Steinegger; 19.09.2017