internal static EntityDataSourceReferenceValueColumn Create(Type clrToType, MetadataWorkspace ocWorkspace, NavigationProperty navigationProperty) { EntityDataSourceUtil.CheckArgumentNull(clrToType, "clrToType"); Type columnType = typeof(EntityDataSourceReferenceValueColumn <>).MakeGenericType(clrToType); EntityDataSourceReferenceValueColumn result = (EntityDataSourceReferenceValueColumn)Activator.CreateInstance(columnType, ocWorkspace, navigationProperty); return(result); }
private static void AddReferenceNavigationColumns(List <EntityDataSourceColumn> columns, MetadataWorkspace ocWorkspace, EntitySet entitySet, EntityType entityType) { foreach (AssociationSetEnd toEnd in GetReferenceEnds(entitySet, entityType, /*forKey*/ false)) { // Check for a navigation property NavigationProperty navigationProperty; if (TryGetCorrespondingNavigationProperty(toEnd.CorrespondingAssociationEndMember, out navigationProperty)) { Type clrToType = EntityDataSourceUtil.GetMemberClrType(ocWorkspace, navigationProperty); EntityDataSourceReferenceValueColumn column = EntityDataSourceReferenceValueColumn.Create(clrToType, ocWorkspace, navigationProperty); columns.Add(column); } } }