同じプラグイン内のさまざまなエンティティからデータを返すために一般的に使用されるクエリがあります。クエリでは、new ColumnSet(true) を使用してすべての列を返すことを選択しました。
ほとんどの場合、これは問題なく機能しますが、いくつかのフィールドを元に戻すことができないエンティティが 1 つあります。これらのフィールドは別のプラグインを使用して計算されますが、値はフォームとビューに表示されるため、レコード自体に保持されているように見えます。ただし、クエリでは返されません。
私はロングショットとして、プラグインではなく自分で値を設定するインポートを介して独自のレコードを作成しようとしました。これらの値は、この方法で実行すると見つかりますが、他のレコードについてはまだ欠落しています。
誰かが何か問題を見つけた場合に備えて、以下にクエリをコピーしました。
//set up query for entity
                QueryExpression query;
                query = new QueryExpression();
                query.EntityName = entityName;
                query.ColumnSet = new ColumnSet(true);
                query.PageInfo.ReturnTotalRecordCount = true;
                //get the results                    
                EntityCollection SourceRecords = new EntityCollection();
                int pageNumber = 1;
                RetrieveMultipleRequest req;
                RetrieveMultipleResponse resp = new RetrieveMultipleResponse(); ;
                do
                {
                    query.PageInfo.Count = 5000;
                    query.PageInfo.PagingCookie = (pageNumber == 1) ? null : resp.EntityCollection.PagingCookie;
                    query.PageInfo.PageNumber = pageNumber++;
                    req = new RetrieveMultipleRequest();
                    req.Query = query;
                    resp = (RetrieveMultipleResponse)SourceOrgService.Execute(req);
                    SourceRecords.Entities.AddRange(resp.EntityCollection.Entities);
                }
                while (resp.EntityCollection.MoreRecords);