ここで以前に同様の質問をしたことがあり、その答えが私の問題を解決しました。しかし、今は以前と同じ問題が発生していますが、条件の変化により答えが機能しなくなりました。
これが私が実行しているクエリです。何かに設定されていることを確認しましsomeField
た (GUID によって他のエンティティを参照するルックアップ フィールドです)。エントリがありませんresult
(条件を「等しくない」に切り替えない限り)。それはおそらく、フィールドが持ち込まれていないことが原因です。
実行をブレークポイントしてチェックAttributes
すると、合計 30 個のフィールドのうち 21 個のフィールドが表示されます (そのうちのいくつかは確かに空かもしれませんが、これはsomeField
ではありません)。 !
QueryExpression query = new QueryExpression
{
EntityName = "entity",
ColumnSet = new ColumnSet{ AllColumns = true },
// Here I tried the code addition #1 below
Criteria =
{
Filters =
{
new FilterExpression
{
Conditions =
{
new ConditionExpression("someField", ConditionOperator.Equal, guid)
}
}
}
}
};
// Here I tried the code addition #2 below
EntityCollection result = Service.RetrieveMultiple(query);
見逃しているものと、それを解決するにはどうすればよいですか?
このブログLinkEntities
で説明されているように使用してみましたが、実際にはうまくいきませんでした。それが意味のあるアプローチであったかどうかさえわかりません。以下のように見えました。
LinkEntities =
{
new LinkEntity
{
Columns = new ColumnSet { AllColumns = true },
LinkFromEntityName = "entity",
LinkFromAttributeName = "otherEntityId",
LinkToEntityName = "entity2",
LinkToAttributeName = "entity2Id"
}
},
また、 MSDN で提案されているソリューションを採用しようとしました。同じ結果です。
request.LinkEntities.Add(
new LinkEntity(
"entity", "entity2", "otherEntityId", "entity2Id", JoinOperator.Inner));
request.LinkEntities[0].Columns.AddColumns("entity2Id");
request.LinkEntities[0].EntityAlias = "blobb";
繰り返しますが、管理者アクセス権があり、関連するフィールドが空ではないため、@JamesWood が提供するソリューションは機能しなくなりました。