private void ObjectSpace_ObjectGetting(object sender, ObjectGettingEventArgs e)
 {
     if (e.SourceObject != null && objectMap.IsKnown(e.SourceObject.GetType()))
     {
         var link = (IObjectSpaceLink)e.SourceObject;
         if (objectSpace.Equals(link.ObjectSpace) && (objectMap.Contains(e.SourceObject) || IsNewObject(e.SourceObject)))
         {
             e.TargetObject = e.SourceObject;
         }
         else
         {
             var key = objectSpace.GetKeyValue(e.SourceObject);
             e.TargetObject = objectSpace.GetObjectByKey(e.SourceObject.GetType(), key);
         }
     }
 }