Я бы решил это так:
class Parent
{
public Parent()
{
Children = new Child[3];
}
public Child[] Children { get; private set; }
private Child1 { get { return Child[0]; } set { Child[0] = value; } }
private Child2 { get { return Child[1]; } set { Child[1] = value; } }
private Child3 { get { return Child[2]; } set { Child[2] = value; } }
}
Легко отобразить его как отдельные свойства.
<property name="Child1" />
<property name="Child2" />
<property name="Child3" />
Вероятно, лучшее решение - просто сопоставить его с другой таблицей.
<array table="Children">
<key name="Parent_FK"/>
<index name="array_index"/>
<composite-element>
<property name="Foo"/>
<property name="Bar"/>
</composite-element>
</array>