I have created a .geodatabase file that has four tables with geometries and multiple tables without geometry. However, when I call "await Geodatabase.OpenAsync(path)" in my application and check the Geodatabase properties, it only has the four tables with geometries inside FeatureTables property. Should the tables without geometry be visible here too? Or is there some other way to access the tables without geometries inside the Geodatabase?
When I check the .geodatabase file with SQLite browser, I can see that all tables are created correctly inside the file.
I have tried to create the .geodatabase with Share as Runtime Content function from ArcMap, Create Runtime Content tool from Data Management and also with my own Python script that uses "arcpy.CreateRuntimeContent_management" and all yield same results.
What version of the ArcGIS Runtime SDK for .NET are you using? I know that this works in 10.2.5 and 10.2.6, but not sure about 10.2.4.
My experience has been with generating the runtime geodatabase through the services pattern and not through desktop tools, so I wonder if there is an issue there as well.
I'm currently using 10.2.5 but I guess I need to try with 10.2.6 next. I only need the data for read-only purposes and I do not have possibility to add global ids and archiving to the tables and therefore I cannot use the service pattern.
I have now tried with 10.2.6 and it made no difference.
However, I was able to see the all tables inside the Geodatabase when I modified the .mxd-document used in creation to only contain one table that has no geometry field. In this case, all tables give "Schema info not found." error. What could possibly cause this?
You should see all the tables as long as they were in your ArcMap document (MXD) when you ran the share as Runtime Content tool.
If it works with just one, then it might suggest one of the other tables has some feature or behavior which is not supported in the Runtime.
Is there anything special about the other tables?
I guess there is some problem with the relationship classes. How Runtime Content Creation is supposed to work with them? Are all related tables automatically included in the .geodatabase-file, as it seems that it does not matter if they are added to the .mxd-document or not.
All tables with geometries are working as I expect but the tables with only attribute data are not visible in Geodatabase.FeatureTables property or they are giving that "Schema info not found" error. I guess it is similar problem to this https://community.esri.com/thread/90518
After further inspection I noticed that tables showing in Geodatabase.FeatureTables property is somehow based on the GDB_ServiceItems table in the .geodatabase-file.
If the .mxd-document used in creating the Runtime Content has tables with geometry, these tables are listed on this GDB_ServiceItems table and only them can be used through Geodatabase.FeatureTables property.
However, if the .mxd-document used in creating the runtime content only has attribute tables on it that have relationships to these tables with geometries, GDB_ServiceItems table does not exist inside the .geodatabase-file and all the tables are visible inside the Geodatabase.FeatureTables property. In this case, the tables do not have ServiceInfo and therefore give that "Schema info not found" error.
I can also replicate this by creating Runtime Content with geometry tables that have relationships to attribute tables. After creating the content, I open the Geodatabase and check that only these geometry tables are visible inside FeatureTables property. Then I close my application and open the .geodatabase in SQLite Browser and manually delete all rows inside GDB_ServiceItems. Then I check Geodatabase.FeatureTables and its null. Then I again open the .geodatabase in SQLite Browser and delete the whole GDB_ServiceItems table and after that when I check Geodatabase.FeatureTables, all the geometry and attribute tables are visible there but do not have ServiceInfo.
Should these attribute tables in .mxd-document also generate rows to this GDB_ServiceItems table inside the .geodatabase?
It seems to work other way around too. Manually adding rows of corresponding attribute tables to GDB_ServiceItems table makes the attribute tables visible in Geodatabase.FeatureTables property.