private void ConfigureInverse(AssociationType associationType, EdmModel model) { DebugCheck.NotNull(associationType); DebugCheck.NotNull(model); if (_inverseNavigationProperty == null) { return; } var inverseNavigationProperty = model.GetNavigationProperty(_inverseNavigationProperty); if ((inverseNavigationProperty != null) && (inverseNavigationProperty.Association != associationType)) { associationType.SourceEnd.RelationshipMultiplicity = inverseNavigationProperty.Association.TargetEnd.RelationshipMultiplicity; if ((associationType.Constraint == null) && (_constraint == null) && (inverseNavigationProperty.Association.Constraint != null)) { associationType.Constraint = inverseNavigationProperty.Association.Constraint; associationType.Constraint.DependentEnd = associationType.Constraint.DependentEnd.GetEntityType() == associationType.SourceEnd.GetEntityType() ? associationType.SourceEnd : associationType.TargetEnd; } model.RemoveAssociationType(inverseNavigationProperty.Association); inverseNavigationProperty.RelationshipType = associationType; inverseNavigationProperty.ToEndMember = associationType.SourceEnd; } }