ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data Namespace / QueryTableDescription Class / PrimaryKeys Property
Example

In This Topic
    PrimaryKeys Property
    In This Topic
    Gets or sets the comma-separated list of key fields to be used to manufacture ObjectIDs.
    Syntax
    public string PrimaryKeys {get; set;}
    Public Property PrimaryKeys As String
    Example
    Creating a QueryTable using a query which joins two versioned tables in a geodatabase
    public async Task QueryTableJoinWithVersionedData()
    {
        await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
        {
            QueryDef queryDef = new QueryDef
            {
                Tables = "CommunityAddress JOIN MunicipalBoundary on CommunityAddress.Municipality = MunicipalBoundary.Name",
                SubFields = "CommunityAddress.OBJECTID, CommunityAddress.Shape, CommunityAddress.SITEADDID, CommunityAddress.ADDRNUM, CommunityAddress.FULLNAME, CommunityAddress.FULLADDR, CommunityAddress.MUNICIPALITY, MunicipalBoundary.Name, MunicipalBoundary.MUNITYP, MunicipalBoundary.LOCALFIPS",
            };
    
            using (Geodatabase testVersion1Geodatabase = new Geodatabase(new DatabaseConnectionProperties(EnterpriseDatabaseType.Oracle)
            {
                AuthenticationMode = AuthenticationMode.DBMS,
                Instance = "instance",
                User = "user",
                Password = "password",
                Database = "database",
                Version = "user.testVersion1"
            }))
            {
                QueryTableDescription queryTableDescription = new QueryTableDescription(queryDef)
                {
                    Name = "CommunityAddrJounMunicipalBoundr",
                    PrimaryKeys = testVersion1Geodatabase.GetSQLSyntax().QualifyColumnName("CommunityAddress", "OBJECTID")
                };
    
                // Will be based on testVersion1.
                using (Table queryTable = testVersion1Geodatabase.OpenQueryTable(queryTableDescription))
                {
                    // Use queryTable.
                }
            }
    
            using (Geodatabase testVersion2Geodatabase = new Geodatabase(new DatabaseConnectionProperties(EnterpriseDatabaseType.Oracle)
            {
                AuthenticationMode = AuthenticationMode.DBMS,
                Instance = "instance",
                User = "user",
                Password = "password",
                Database = "database",
                Version = "user.testVersion2"
            }))
            {
                QueryTableDescription queryTableDescription = new QueryTableDescription(queryDef)
                {
                    Name = "CommunityAddrJounMunicipalBoundr",
                    PrimaryKeys = testVersion2Geodatabase.GetSQLSyntax().QualifyColumnName("CommunityAddress", "OBJECTID")
                };
    
                // Will be based on testVersion2.
                using (Table queryTable = testVersion2Geodatabase.OpenQueryTable(queryTableDescription))
                {
                    // Use queryTable.
                }
            }
        });
    }
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also