Fabio that works great - thanks! Here's my mappings, just in case
others want to see them - let me know if I messed anything up.
In the User/Contact/Business mapping files:
<bag name="AddressOwners" access="field.camelcase-underscore"
inverse="true" cascade="all-delete-orphan" where="AddressOwnerTypeId =
102">
<key column="OwnerId" />
<one-to-many class="AddressOwner" />
</bag>
NOTE: 102 is the AddressOwnerTypeId for a User, this is different
in the Contact and Business as you will see below.
In the AddressOwner mapping file:
<any name="Owner" id-type="System.Int32" meta-type="System.Int32"
access="field.camelcase-underscore">
<meta-value value="102" class="User"/>
<meta-value value="104" class="Contact"/>
<meta-value value="106" class="Business"/>
<column name="AddressOwnerTypeId"/>
<column name="OwnerId"/>
</any>
By the way - a "gotcha" that I ran into the first time I tried saving
a User with a newly-added AddressOwner was the following error:
Invalid index 5 for this SqlParameterCollection with Count=5
I by mistake had left a property mapping for the AddressOwnerTypeId
column in the AddressOwner class, but I removed it because the <any>
was taking care of that column for me and I didn't really need that
property anyways. If I had needed it, I guess I could have set its
insert="false" and update="false" attributes like Tim Weaver did
here:
http://codeverity.com/timweaver/nhibernate-invalid-index-for-this-sqlparametercollection/
--
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.