/// <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; }