AnsweredAssumed Answered

External component exception on QueryRelatedAsync

Question asked by kor_ on Feb 4, 2015
Latest reply on Nov 8, 2015 by kor_

I'm trying to query related records from an offline geodatabase (created by the Sync capability). Most of the relationshipqueries work out fine, but there's one that always throws an "External component exception". How should I proceed with this error?

 

External component has thrown an exception.
   at RuntimeCoreNet.CoreFieldDefinitionNativeMethods.CoreFieldDefinition_Create(IntPtr& ppNativeCoreFieldDefinition, String name, CoreFieldType type, Boolean isNullable, Int32 width)
   at RuntimeCoreNet.CoreFieldDefinition..ctor(String name, CoreFieldType type, Boolean isNullable, Int32 width)
   at Esri.ArcGISRuntime.Data.FieldInfo.ToCoreFieldDefinition()
   at Esri.ArcGISRuntime.Data.TableSchema..ctor(String name, IEnumerable`1 fields, String objectIDField, String creatorField, String creationTimeField, String editorField, String editorTimeField, Boolean hasAttachments, Boolean ignoreEditorFields)
   at Esri.ArcGISRuntime.Data.TableSchema..ctor(String name, IEnumerable`1 fields, String objectIDField, Boolean hasAttachments)
   at Esri.ArcGISRuntime.Data.ArcGISFeatureTable.QueryRelatedAsync(IEnumerable`1 featureIDs, Int64 relationshipID)

 

There's the stack trace after calling this QueryRelatedAsync:

Relationship relation = featureTable.ServiceInfo.Relationships.FirstOrDefault(c => c.RelatedTableID == relatedFeatureTable.ServiceInfo.ID);
var gdbFeatures = await featureTable.QueryRelatedAsync(objectId, relation.ID);

 

I've checked that the relation.ID matches the one on the ArcGIS Server and the server returns the (online) data correctly.

 

The featureTable in this case is the "child table" and the relatedFeatureTable is the "parent" table. Parent table contains a geometry and the child table does not. The QueryRelatedAsync works if the query is executed the other way (i.e. from parent to child). I've already tried switching the featureTables and relationIds but it doesn't make a difference.

 

Also it's worth noticing that the query works the other way around, from the parent to child (uses the same method).

 

The data is present in the SQLite database.

 

Any advice what should I try next?

Outcomes