public P InnerJoin <RE>(string fromAttributeName, string toAttributeName, Action <IJoinedEntity <P, E, RE> > expression) where RE : Entity, new()
        {
            var relatedRecordType = new RE().LogicalName;

            var joinEntity = new JoinedEntity <P, E, RE>(JoinOperator.Inner, RecordType, fromAttributeName, relatedRecordType, toAttributeName, this);

            expression(joinEntity);
            LinkEntities.Add(joinEntity.ToLinkEntity());
            return((P)Parent);
        }
        public LinkEntity AddLink(string linkToEntityName, string linkFromAttributeName, string linkToAttributeName, JoinOperator joinOperator)
        {
            LinkEntity link = new LinkEntity(
                EntityName,
                linkToEntityName,
                linkFromAttributeName,
                linkToAttributeName,
                joinOperator);

            LinkEntities.Add(link);

            return(link);
        }