我之前在这里问过一个类似的问题,答案解决了我的问题。但是,现在我遇到了和以前一样的问题,但是由于条件的变化,答案不再起作用。
这是我正在运行的查询。我已经检查了它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 提供的解决方案不再起作用,因为我拥有管理员访问权限并且相关字段不为空。