/// <summary> /// Configures the navigation link for the given navigation property for this navigation source. /// </summary> /// <param name="navigationProperty">The navigation property for which the navigation link is being generated.</param> /// <param name="navigationLinkBuilder">The builder used to generate the navigation link.</param> /// <returns>Returns itself so that multiple calls can be chained.</returns> public virtual NavigationSourceConfiguration HasNavigationPropertyLink(NavigationPropertyConfiguration navigationProperty, NavigationLinkBuilder navigationLinkBuilder) { if (navigationProperty == null) { throw Error.ArgumentNull("navigationProperty"); } if (navigationLinkBuilder == null) { throw Error.ArgumentNull("navigationLinkBuilder"); } StructuralTypeConfiguration declaringType = navigationProperty.DeclaringType; if (!(declaringType.IsAssignableFrom(EntityType) || EntityType.IsAssignableFrom(declaringType))) { throw Error.Argument("navigationProperty", SRResources.NavigationPropertyNotInHierarchy, declaringType.FullName, EntityType.FullName, Name); } _navigationPropertyLinkBuilders[navigationProperty] = navigationLinkBuilder; return(this); }