我正在尝试以两种方式检索ActivityPointer:
第一种方式
public Entity GetEntity(NonNullable<string> entityTypeName, Guid entityId)
{
return
_organizationService.Retrieve(
entityTypeName, entityId,
new ColumnSet(true));
}
第二种方式
public ActivityPointer GetServiceActivity(Guid entityId)
{
return _xrmServiceContext.ActivityPointerSet.FirstOrDefault(x => x.Id == entityId);
}
当为entityId传入相同的guid时,为什么第一种方式会返回一个明显更小的对象?
答案 0 :(得分:1)
您试图完全比较两个不同的对象。基础对象Entity
属于Microsoft.Xrm.Sdk.Entity类型,而基础对象ActivityPointer
属于Microsoft.Xrm.Client.CrmEntity类型。
Microsoft.Xrm.Client.CrmEntity
占用空间更大的原因之一是因为它包含相关的实体记录元数据,当您尝试访问相关的实体属性时,这些元数据是延迟加载的。因此,关联实体越多,对象越大,在这种情况下activitypointer
确实有。