检索单个实体

Retrieve single entity

我需要从实体中提取单个值。它是一种全局设置,与调用实体没有关系。但是当我尝试用 RetrieveMultiple 来做时,我得到一个空的响应。

string name="objectToRetrieve";
QueryExpression qe = new QueryExpression  { EntityName = "new_setting", ColumnSet =new ColumnSet  ("new_name","new_value")};
qe.Criteria.AddCondition("new_name", ConditionOperator.Equal, name);
EntityCollection response = service.RetrieveMultiple(qe);

当我通过 Guid 检索它时,一切正常。

Entity response = service.Retreve("new_setting", Guid.Parse("09BF9644-9BBA-E511-80FA-005056924035), new ColumnSet("new_value"));

没有Guid我如何获得它?

您的检索倍数设置正确。所以有几个选项可能会发生...

  • 如果您没有从检索倍数中得到任何记录,那么您通过 GUID 检索的记录没有您认为的 new_name 值。
  • 如果您返回的记录不包含 new_value 的值,那么您可能有多个具有相同 new_name 值的记录,并且您得到不同的记录回来。检查 GUID 以查看它是否符合您的预期。
  • 您可能有一个在检索倍数上触发的插件,它正在修改返回的结果。
  • 您也可能会访问不同的组织,或者可能使用其他无权读取该实体的用户,因为如果他们的组织。这是插件中的 运行 还是外部进程?

您的代码是正确的,您必须仔细考虑您所做的不正确的假设。我首先要确保返回的实体的 GUID 与您期望的相符。