如何使用linq-query获取不在上下文中的实体?

时间:2019-04-13 19:19:23

标签: c# linq dynamics-crm crm

我的插件在“创建” -xxx-实体上触发。在ServiceContext中,我有仅属于此实体的注释。但是,例如,我希望CRM中的所有注释或属于不在ServiceContext中的另一个实体的所有记录。我该如何找回它?

var ServiceContext = new OrganizationServiceContext(service);

 var notes = from n in ServiceContext.CreateQuery("annotation")
 where n["objectid"] == new EntityReference("xxx", xxx.Id)
                            select n;

1 个答案:

答案 0 :(得分:1)

OrganizationServiceContext可以无限制地查询任何实体。您可以使用相同的查询,只需删除where子句,您将获得所有注释:

var query = from n in ServiceContext.CreateQuery("annotation")
            select n;
var allNotes = query.ToList();

或者,对于与另一条记录相关的笔记:

var query = from n in ServiceContext.CreateQuery("annotation")
where n.GetAttributeValue<EntityReference>("objectid").Id.Equals(myObjectId)
select n;

对于具有附件的注释,除非您需要documentbody,否则将其保留在查询中可以加快处理速度。