Legacy DB mapping question:
In our application we have multiple tables (Users, Contacts,
Businesses) for items that may have one or more Addresses - these are
referred to as AddressOwners. There is a single association table
that relates an AddressOwner to an Address in a many-to-many
relationship:
CREATE TABLE dbo.AddressOwners
(
AddressOwnerId int IDENTITY PRIMARY KEY NOT NULL,
AddressId int NOT NULL,
OwnerId int NOT NULL,
AddressOwnerTypeId int NOT NULL,
IsPrimary bit NOT NULL,
CONSTRAINT FK_AddressOwners_AddressOwnerTypes FOREIGN KEY
(AddressOwnerTypeId) REFERENCES dbo.AddressOwnerTypes
(AddressOwnerTypeId),
CONSTRAINT FK_AddressOwners_Addresses FOREIGN KEY (AddressId )
REFERENCES dbo.Addresses (AddressId )
)
Notice that we've got the expected foreign keys mapping to the
AddressOwnerType table and the Addresses table - but there is no
foreign key on the OwnerId column, because it could be an ID for a
User, a Contact, or a Business (the type of ID is determined by the
value in the AddressOwnerTypeId column).
Since we maintain the concept of a "Primary Address" in the
AddressOwners table, I have created an AddressOwner entity. I see how
using the <any> element can allow me to map a property on the
AddressOwner entity to the actual Owner (a User, Contact, or Business
entity).
However, I'd like each of User/Contact/Business entities to have a
collection of AddressOwner entities so we can (for example) load a
User and all its address-related information. This sounds like a
collection property with some sort of a discriminator column... but
how would I map this in the User/Contact/Business entities?
Thanks!
--
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.