private void GenerateAssociationSet( SimpleMappingContext mappingContext, CollapsibleEntityAssociationSets collapsibleItem, UniqueIdentifierService uniqueEntityContainerNames, UniqueIdentifierService globallyUniqueTypeNames) { var uniqueEndMemberNames = new UniqueIdentifierService(StringComparer.OrdinalIgnoreCase); var associationSetEndDetails0 = collapsibleItem.GetStoreAssociationSetEnd(0); var associationEndMember0 = GenerateAssociationEndMember( mappingContext, associationSetEndDetails0.AssociationSetEnd.CorrespondingAssociationEndMember, uniqueEndMemberNames, associationSetEndDetails0.Multiplicity, associationSetEndDetails0.DeleteBehavior); var conceptualEntitySet0 = mappingContext[associationSetEndDetails0.AssociationSetEnd.EntitySet]; var associationSetEndDetails1 = collapsibleItem.GetStoreAssociationSetEnd(1); var associationEndMember1 = GenerateAssociationEndMember( mappingContext, associationSetEndDetails1.AssociationSetEnd.CorrespondingAssociationEndMember, uniqueEndMemberNames, associationSetEndDetails1.Multiplicity, associationSetEndDetails1.DeleteBehavior); var conceptualEntitySet1 = mappingContext[associationSetEndDetails1.AssociationSetEnd.EntitySet]; globallyUniqueTypeNames.UnregisterIdentifier(mappingContext[collapsibleItem.EntitySet.ElementType].Name); uniqueEntityContainerNames.UnregisterIdentifier(mappingContext[collapsibleItem.EntitySet].Name); var associationTypeName = CreateModelName(collapsibleItem.EntitySet.Name, globallyUniqueTypeNames); var associationSetName = CreateModelName(collapsibleItem.EntitySet.Name, uniqueEntityContainerNames); var conceptualAssociationType = AssociationType.Create( associationTypeName, _namespaceName, false, DataSpace.CSpace, associationEndMember0, associationEndMember1, null, // Don't need a referential constraint. null); CreateModelNavigationProperties(conceptualAssociationType); var conceptualAssociationSet = AssociationSet.Create( associationSetName, conceptualAssociationType, conceptualEntitySet0, conceptualEntitySet1, null); Debug.Assert(conceptualAssociationSet.AssociationSetEnds.Count == 2); var conceptualSetEnd0 = conceptualAssociationSet.AssociationSetEnds[0]; var conceptualSetEnd1 = conceptualAssociationSet.AssociationSetEnds[1]; mappingContext.AddMapping(associationSetEndDetails0.AssociationSetEnd, conceptualSetEnd0); mappingContext.AddMapping(associationSetEndDetails1.AssociationSetEnd, conceptualSetEnd1); mappingContext.AddMapping(collapsibleItem, conceptualAssociationSet); mappingContext.RemoveMapping(collapsibleItem.EntitySet); }