ThinkGeo.com    |     Documentation    |     Premium Support

GetFeatureById returns new Feature when Id not found

I have some code where a feature can be in one of two layers. In MapSuite 6.0, the GetFeatureById function would feature an Id of null if the feature was not found. I used this to search for the feature in the other layer.



Anyway, the problem is this. If the feature is not found in a layer while using GetFeatureById, a feature with an Id is still returned. Additionally, this new feature also has an Id. Is this supposed to be how this function works? I would think if it couldn’t find a feature with the given Id, then it would return null.



I could compare the feature id returned with the id I passed in, but it would be easier to just check if the returned feature is null or not.

Hi Anthony, 
  
 Thanks for your post,I agree with you that returning null would better if there is no feature matches. However, for now we can’t do the change to make the feature return null if the feature doesn’t be found. As this change is a breaking change which might bring many troubles for other users. 
  
 As the method will never return null, So, to judge if(returnedFeature.Id==null) would be a walkaround. 
  
 Sorry for the inconvenience. 
  
 Thanks, 
  
 Summer

Thanks for the fast reply! In MapSuite 7.0, the returnedFeature.Id actually has a GUID value. In MapSuite 6.0, the Id used to be null if the feature was not found, and that’s what I used to key off of.  
  
 Anyway, I can compare the returnedFeature.Id to the feature.Id I was looking for, as a workaround.I just wanted to make sure I wasn’t missing anything. Thanks

1 Like

Hi Anthony, 
  
 Sorry for the mistake, you are right, a guid will be there and "compare the returnedFeature.Id to the feature.Id" should be a good walkaround.  
  
 Whenever you have any more question , please feel free to let us know. 
  
 Best Regards 
  
 Summer

Thanks for the quick replies!

Hi Anthony, 
  
 You are always welcome,if you have any more question , please feel free to let us know. 
  
 Best Regards 
  
 Summer