/// <summary> /// Example for traversing a model /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TraverseButton_Click(object sender, EventArgs e) { const int indent = 20; ReadOnlyMetadataCollection <NavigationProperty> metadata = EntityFrameworkHelper.GetNavigationProperties <Order, NorthContext>(); var nameParts = metadata.FirstOrDefault().DeclaringType.FullName.Split('.'); Debug.WriteLine($"namespace: {nameParts[0]}"); Debug.WriteLine($" class: {nameParts[1]}"); Debug.WriteLine(""); Debug.WriteLine("navigation model names"); var navigationPropertyNames = metadata.Select(np => np.Name).ToList(); foreach (var name in navigationPropertyNames) { Debug.WriteLine($"{name,indent}"); } Debug.WriteLine(""); Debug.WriteLine("RelationshipType names"); var relationNames = metadata.Select(np => np.RelationshipType.Name).ToList(); foreach (var relationName in relationNames) { Debug.WriteLine($"{relationName,indent}"); } MessageBox.Show("See output window"); }