I'm using EF 4.1 with Self-Tracking Entities in a layered application which uses WCF to hand entities back and forth from the client to the server.
A portion of my database contains 3 tables:
Customer
Contact
CustomerContacts
CustomerContacts contains only the two primary keys of Customer and Contact, thus the EDM represents this as navigation properties - Customer.Contacts and Contacts.Customers. The CustomerContacts table is not represented otherwise in the model, meaning there is no CustomerContacts entity, which I understand and expect as a feature of the EDM Designer when representing many-to-many relationships of this form.
The situation is that I have a list of Customers bound to a ComboBox and wish to load the related Contacts of a Customer only at the point when it is selected in the ComboBox. Put another way, I wish to explicilty load Customer.Contacts when a Customer is selected in the ComboBox. I can't use Customer.ID in a Where to fetch the list of Contacts, since there is no join entity in the model which relates them.
Currently, I am loading another copy of the Customer, using Include("Contacts") to get the Contacts and then setting via selectedCustomer.Contacts = temporaryCustomer.Contacts;
Does anyone know of another method which doesn't require that I fetch a redundant, temporary copy of the Customer?