With the information you sent here your full mappings is:
private void ConfOrmMapping(ObjectRelationalMapper orm, Mapper mapper)
{
mapper.Customize<Match>(pc =>
{
pc.ManyToOne(match=> match.HomeRoster, mto=>
mto.Access(Accessor.Field));
pc.ManyToOne(match => match.HomeTeam, mto => mto.Access(Accessor.Field));
pc.ManyToOne(match => match.RoadRoster, mto => mto.Access(Accessor.Field));
pc.ManyToOne(match => match.RoadTeam, mto => mto.Access(Accessor.Field));
});
}
Expressed in XML it mean:
<class name="Team" lazy="false">
<id name="Id" type="Int32">
<generator class="hilo">
<param name="max_lo">100</param>
</generator>
</id>
<set name="Rosters" access="field.camelcase" inverse="true"
cascade="all,delete-orphan">
<key column="TeamId" />
<one-to-many class="TeamRoster" />
</set>
<set name="Strategies" access="field.camelcase">
<key column="TeamId" />
<one-to-many class="Strategy" />
</set>
<set name="MatchesAtHome" access="field.camelcase" inverse="true"
cascade="all,delete-orphan">
<key column="HomeTeamId" on-delete="cascade" />
<one-to-many class="Match" />
</set>
<set name="MatchesOnRoad" access="field.camelcase" inverse="true"
cascade="all,delete-orphan">
<key column="HomeTeamId" on-delete="cascade" />
<one-to-many class="Match" />
</set>
<property name="Visible" />
<property name="Name" />
<property name="Location" />
</class>
<class name="Strategy">
<id name="Id" type="Int32">
<generator class="hilo">
<param name="max_lo">100</param>
</generator>
</id>
</class>
<class name="Match" lazy="false">
<id name="Id" type="Int32">
<generator class="hilo">
<param name="max_lo">100</param>
</generator>
</id>
<many-to-one name="HomeTeam" access="field.camelcase"
column="HomeTeamId" />
<many-to-one name="RoadTeam" access="field.camelcase"
column="RoadTeamId" />
<many-to-one name="HomeRoster" access="field.camelcase"
column="HomeRosterId" />
<many-to-one name="RoadRoster" access="field.camelcase"
column="RoadRosterId" />
</class>
<class name="Roster" lazy="false">
<id name="Id" type="Int32">
<generator class="hilo">
<param name="max_lo">100</param>
</generator>
</id>
<many-to-one name="Team" column="TeamId" />
<set name="Players" access="field.camelcase">
<key column="RosterId" />
<one-to-many class="PlayerInTeam" />
</set>
</class>
<class name="PlayerInTeam">
<id name="Id" type="Int32">
<generator class="hilo">
<param name="max_lo">100</param>
</generator>
</id>
</class>
<joined-subclass name="TeamRoster" extends="Roster" lazy="false">
<key column="Id" on-delete="cascade" />
<property name="IsDefault" />
<property name="Name" />
</joined-subclass>
Notes:
- the POID strategy 'increment' is not to use in production
- your classes are not proxyable and for that reason you can see the
lazy="false"
- you have some logic in the properties set; in those cases would be better
the access to field
Have a nice day
--
Fabio Maulo
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en.