dynamic crm LinkEntity.Orders.First()如何使用
时间: 2024-02-19 20:57:23 浏览: 168
在 Dynamics CRM 中,如果你想要使用 LinkEntity 和 LINQ 风格的语法来获取第一个订单,可以使用以下代码:
```csharp
var query = new QueryExpression("salesorder");
query.ColumnSet = new ColumnSet(true);
query.AddOrder("createdon", OrderType.Ascending);
query.PageInfo = new PagingInfo { Count = 1, PageNumber = 1 };
query.LinkEntities.Add(new LinkEntity("salesorder", "contact", "customerid", "contactid", JoinOperator.Inner));
query.LinkEntities[0].EntityAlias = "contact";
query.LinkEntities[0].Columns.AddColumns("fullname", "emailaddress1");
var result = service.RetrieveMultiple(query);
if (result.Entities.Count > 0)
{
var firstOrder = result.Entities[0];
var customer = firstOrder.GetAttributeValue<EntityReference>("customerid");
var contact = firstOrder.GetAttributeValue<EntityCollection>("contact");
}
```
这个代码创建了一个名为 "salesorder" 的 QueryExpression 对象,并使用 AddOrder 方法按照 "createdon" 属性进行升序排序。然后,使用 PageInfo 对象设置返回第一页中的第一个实体。接下来,使用 LinkEntities 属性添加一个名为 "contact" 的 LinkEntity。链接条件是 "customerid" 属性相等。然后,使用 EntityAlias 属性设置实体别名,并使用 AddColumns 方法设置需要检索的列集合。
最后,使用 RetrieveMultiple 方法执行查询,并检查结果是否包含实体。如果有实体,可以使用 GetAttributeValue 方法从实体中检索属性值,包括链接实体中的属性。在这个例子中,我们将 "customerid" 属性分配给 customer 变量,将链接实体 "contact" 分配给 contact 变量。
请注意,这里仅返回第一个订单及其链接实体的第一个元素。如果需要检索更多订单或链接实体,请修改 PageInfo 对象的 Count 和 PageNumber 属性。
阅读全文