/// <summary> Retrieves the related entity of type 'DecisionNodeEntity', using a relation of type 'n:1'</summary>
        /// <param name="forceFetch">if true, it will discard any changes currently in the currently loaded related entity and will refetch the entity from the persistent storage</param>
        /// <returns>A fetched entity of type 'DecisionNodeEntity' which is related to this entity.</returns>
        public virtual DecisionNodeEntity GetSingleAttributeMatch(bool forceFetch)
        {
            if( ( !_alreadyFetchedAttributeMatch || forceFetch || _alwaysFetchAttributeMatch) && !base.IsSerializing && !base.IsDeserializing  && !base.InDesignMode)
            {
                bool performLazyLoading = base.CheckIfLazyLoadingShouldOccur(AttributeValueEntity.Relations.DecisionNodeEntityUsingAttributeMatchId);

                DecisionNodeEntity newEntity = new DecisionNodeEntity();
                if(base.ParticipatesInTransaction)
                {
                    base.Transaction.Add(newEntity);
                }
                bool fetchResult = false;
                if(performLazyLoading)
                {
                    fetchResult = newEntity.FetchUsingPK(this.AttributeMatchId);
                }
                if(fetchResult)
                {
                    if(base.ActiveContext!=null)
                    {
                        newEntity = (DecisionNodeEntity)base.ActiveContext.Get(newEntity);
                    }
                    this.AttributeMatch = newEntity;
                }
                else
                {
                    if(_attributeMatchReturnsNewIfNotFound)
                    {
                        if(performLazyLoading || (!performLazyLoading && (_attributeMatch == null)))
                        {
                            this.AttributeMatch = newEntity;
                        }
                    }
                    else
                    {
                        this.AttributeMatch = null;
                    }
                }
                _alreadyFetchedAttributeMatch = fetchResult;
                if(base.ParticipatesInTransaction && !fetchResult)
                {
                    base.Transaction.Remove(newEntity);
                }
            }
            return _attributeMatch;
        }