...
Code Block |
---|
language | xml |
---|
title | Mapping of Map and GroupLayer |
---|
|
<class name="SharpMap.Layers.GroupLayer, SharpMap" table="grouplayer">
<list name="Layers" lazy="false" cascade="all" collection- type="DeltaShell.Plugins.Data.NHibernate.Collections.Generic.PersistentEventedListType`1[[SharpMap.Layers.ILayer, SharpMap]], DeltaShell.Plugins.Data.NHibernate">
<key column="parent_layer_id"/>
<index column="list_index" />
<one-to-many class="SharpMap.Layers.ILayer, SharpMap"/>
</list>
</subclass>class>
<class name="Map" table="map" lazy="false" >
<id name="Id" column="id" type="Int64">
<generator class="native" />
</id>
<list name="Layers" lazy="false" cascade="all-delete-orphan" collection-type="DeltaShell.Plugins.Data.NHibernate.Collections.Generic.PersistentEventedListType`1[[SharpMap.Layers.ILayer, SharpMap]], DeltaShell.Plugins.Data.NHibernate">
<key column="map_id"/>
<index column="list_index" />
<one-to-many class="SharpMap.Layers.ILayer, SharpMap"/>
</list>
</class>
|
...
So....for every relationship use a separate list_index column. It is a good convention to use the same prefix a for the key column the mapping might look like this:
Code Block |
---|
language | xml |
---|
title | Mapping of Map and GroupLayer |
---|
|
<class name="SharpMap.Layers.GroupLayer, SharpMap" table="grouplayer">
<list name="Layers" lazy="false" cascade="all" collection- type="DeltaShell.Plugins.Data.NHibernate.Collections.Generic.PersistentEventedListType`1[[SharpMap.Layers.ILayer, SharpMap]], DeltaShell.Plugins.Data.NHibernate">
<key column="parent_layer_id"/>
<index column="parent_layer_list_index" />
<one-to-many class="SharpMap.Layers.ILayer, SharpMap"/>
</list>
</class>
|