private RelationshipClass MakeJoin(RelationshipClass relationshipClass, Table leftTable, Table rightTable) { var virtualRelationshipClassDescription = new VirtualRelationshipClassDescription(_leftField, _rightField, SelectedCardinality.RelationshipCardinality); relationshipClass = leftTable.RelateTo(rightTable, virtualRelationshipClassDescription); var joinDescription = new JoinDescription(relationshipClass) { JoinDirection = JoinDirection.Forward }; joinDescription.JoinType = IsLeftOuterJoin ? JoinType.LeftOuterJoin : JoinType.InnerJoin; if (LeftFields.Count > 1) { joinDescription.TargetFields = LeftFields.Select(item => item.Field).ToList(); } var join = new Join(joinDescription); var joinedTable = @join.GetJoinedTable(); if (joinedTable is FeatureClass) { LayerFactory.Instance.CreateFeatureLayer(joinedTable as FeatureClass, MapView.Active.Map, 0, LayerName); } return(relationshipClass); }
public bool IsAligned() { return(LeftEntity != null && RightEntity != null && LeftFields.Any() && LeftFields.Count() == RightFields.Count()); }