Exemple #1
0
        public Relationship GetRelationship(string relationshipName)
        {
            if (!relationshipName.Contains("."))
            {
                return(PrivateGetRelationship(relationshipName));
            }

            SchemaObject finalSchemaObject = GetFinalSchemaObject(relationshipName);

            return(finalSchemaObject.PrivateGetRelationship(relationshipName.Substring(relationshipName.LastIndexOf(".") + 1)));
        }
Exemple #2
0
        private SchemaObject GetFinalSchemaObject(string path)
        {
            string[]     parts            = path.Split('.');
            SchemaObject lastSchemaObject = this;

            for (int i = 1; i < parts.Length - 1; i++)
            {
                Relationship relationship = lastSchemaObject.PrivateGetRelationship(parts[i]);
                if (relationship == null)
                {
                    throw new KeyNotFoundException($"Could not find relationship {parts[i]} on Data Object {lastSchemaObject.SchemaName}.{lastSchemaObject.ObjectName}");
                }

                lastSchemaObject = Schema.GetSchemaObject(relationship.RelatedObjectType);
            }

            return(lastSchemaObject);
        }