/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public virtual InternalRelationshipBuilder Attach([CanBeNull] InternalEntityTypeBuilder entityTypeBuilder = null) { entityTypeBuilder = entityTypeBuilder ?? Relationship.Metadata.DeclaringEntityType.Builder; var newRelationship = Relationship.Attach(entityTypeBuilder); if (newRelationship != null) { WeakEntityTypeSnapshot?.Attach( newRelationship.Metadata.ResolveOtherEntityType(entityTypeBuilder.Metadata).Builder); } return(newRelationship); }
public InternalRelationshipBuilder Attach() { var newRelationship = Relationship.Attach(RelationshipConfigurationSource); var inverted = Relationship.Metadata.EntityType != newRelationship.Metadata.EntityType; if (NavigationToPrincipalName != null) { newRelationship = inverted ? newRelationship.NavigationToDependent(NavigationToPrincipalName, RelationshipConfigurationSource) : newRelationship.NavigationToPrincipal(NavigationToPrincipalName, RelationshipConfigurationSource); } inverted = Relationship.Metadata.EntityType != newRelationship.Metadata.EntityType; if (NavigationToDependentName != null) { newRelationship = inverted ? newRelationship.NavigationToPrincipal(NavigationToDependentName, RelationshipConfigurationSource) : newRelationship.NavigationToDependent(NavigationToDependentName, RelationshipConfigurationSource); } return(newRelationship); }