public static ManyToManyJoinDescription GetManyToManyJoinDescription(this IEdmModel edmModel, IEdmNavigationProperty navigationProperty) { ManyToManyJoinDescription joinDescription = edmModel.GetAnnotationValue <ManyToManyJoinDescription>(navigationProperty); if (joinDescription != null) { return(joinDescription); } throw new InvalidOperationException("Add many-to-many annotation for navigation property " + navigationProperty.Name); }
public override IEnumerable <(String, String)> GetManyToManyProperties(String tableName) { IEdmEntityType edmEntityType = OeEdmClrHelper.GetEntitySet(_edmModel, tableName).EntityType(); foreach (IEdmNavigationProperty navigationProperty in edmEntityType.NavigationProperties()) { if (navigationProperty.ContainsTarget) { ManyToManyJoinDescription joinDescription = _edmModel.GetManyToManyJoinDescription(navigationProperty); IEdmEntitySet targetEntitySet = OeEdmClrHelper.GetEntitySet(_edmModel, joinDescription.TargetNavigationProperty); yield return(navigationProperty.Name, targetEntitySet.Name); } } }
internal static void SetManyToManyJoinDescription(this IEdmModel edmModel, IEdmNavigationProperty navigationProperty, ManyToManyJoinDescription joinDescription) { edmModel.SetAnnotationValue(navigationProperty, joinDescription); }