回答するには遅すぎます。すでにいくつかの解決策を見つけていると思います。とにかく、AX コミュニティに関する私の回答へのリンクは次のとおりです。
https://community.dynamics.com/ax/f/33/p/212065/573674#573674
C# から関係を追加する 2 つの方法を見つけました。AOT テーブル リレーションに基づく最初のアプローチについてコメントしました。以下のコードで、QueryServiceReference は VS のサービス参照名です。QueryService 参照のみがあり、MetaDataService 参照がない場合は、すべての行で削除できます。コードは次のとおりです。
query.DataSources = new QueryServiceReference.QueryDataSourceMetadata[1];
// Set the properties on Customers data source.
customerDataSource = new QueryServiceReference.QueryDataSourceMetadata();
customerDataSource.Name = "Customers";
customerDataSource.Enabled = true;
customerDataSource.FetchMode = QueryServiceReference.FetchMode.OneToOne;
customerDataSource.Table = "CustTable";
//customerDataSource.DynamicFieldList = false;
query.DataSources[0] = customerDataSource;
QueryServiceReference.QueryDataSourceMetadata dirPartyTableDataSource = new QueryServiceReference.QueryDataSourceMetadata();
dirPartyTableDataSource.Name = "DirPartyTable";
dirPartyTableDataSource.Table = "DirPartyTable";
dirPartyTableDataSource.Enabled = true;
dirPartyTableDataSource.DynamicFieldList = true;
customerDataSource.DataSources = new QueryServiceReference.QueryDataSourceMetadata[1] { dirPartyTableDataSource };
QueryServiceReference.QueryRelationMetadata relation = new QueryServiceReference.QueryRelationMetadata();
//this is also one way of setting the relation
//relation.JoinRelation = "DirPartyTable_FK"; //table relation defined in AOT
//relation.JoinDataSource = customerDataSource.Name; //parent datasource name
relation.Table = "CustTable";//Parent table
relation.Field = "Party";
relation.RelatedTable = "DirPartyTable"; // child table
relation.RelatedField = "RecId";
relation.JoinDataSource = customerDataSource.Name;
dirPartyTableDataSource.Relations = new QueryServiceReference.QueryRelationMetadata[1] { relation };