LinkEntity Class
Updated: November 29, 2016
Applies To: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Specifies the links between multiple entity types used in creating complex queries.
Assembly: Microsoft.Xrm.Sdk (in Microsoft.Xrm.Sdk.dll)
| Name | Description | |
|---|---|---|
![]() | LinkEntity() | Initializes a new instance of the LinkEntity class. |
![]() | LinkEntity(String, String, String, String, JoinOperator) | Initializes a new instance of the LinkEntity class setting the required properties. |
| Name | Description | |
|---|---|---|
![]() | Columns | Gets or sets the column set. |
![]() | EntityAlias | Gets or sets the alias for the entity. |
![]() | ExtensionData | Gets or sets the structure that contains extra data. |
![]() | JoinOperator | Gets or sets the join operator. |
![]() | LinkCriteria | Gets or sets the complex condition and logical filter expressions that filter the results of the query. |
![]() | LinkEntities | Gets the links between multiple entity types. |
![]() | LinkFromAttributeName | Gets or sets the logical name of the attribute of the entity that you are linking from. |
![]() | LinkFromEntityName | Gets or sets the logical name of the entity that you are linking from. |
![]() | LinkToAttributeName | Gets or sets the logical name of the attribute of the entity that you are linking to. |
![]() | LinkToEntityName | Gets or sets the logical name of the entity that you are linking to. |
![]() | Orders |
| Name | Description | |
|---|---|---|
![]() | AddLink(String, String, String) | Adds a link, setting the link to entity name, the link from attribute name and the link to attribute name. |
![]() | AddLink(String, String, String, JoinOperator) | Adds a link setting the link to entity name, the link from attribute name, the link to attribute name, and the join operator. |
![]() | Equals(Object) | (Inherited from Object.) |
![]() | GetHashCode() | (Inherited from Object.) |
![]() | GetType() | (Inherited from Object.) |
![]() | ToString() | (Inherited from Object.) |
q = new QueryExpression();
q.EntityName = "account";
q.ColumnSet = new ColumnSet();
q.ColumnSet.Columns.Add("name");
q.LinkEntities.Add(new LinkEntity("account", "contact", "primarycontactid", "contactid", JoinOperator.Inner));
q.LinkEntities[0].Columns.AddColumns("firstname", "lastname");
q.LinkEntities[0].EntityAlias = "temp";
q.Criteria = new FilterExpression();
q.Criteria.AddCondition("accountnumber", ConditionOperator.Equal, accountNumber);
q.Orders.Add(new OrderExpression("name", OrderType.Descending));
q.Distinct = true;
EntityCollection ec = this.Context.Proxy.RetrieveMultiple(q);
Log.Assert(ec.Entities.Count == 3, "Expected 3 entities, received {0}", ec.Entities.Count);
Log.Assert((string)ec.Entities[0]["name"] == "SdkAccount3", "First Entity should be SdkAccount3");
Log.Assert((string)ec.Entities[1]["name"] == "SdkAccount2", "First Entity should be SdkAccount2");
Log.Assert((string)ec.Entities[2]["name"] == "SdkAccount1", "First Entity should be SdkAccount1");
Log.Assert((string)((AliasedValue)ec.Entities[0]["temp.firstname"]).Value == (string)contact["firstname"], "Expected {0} Got {1}", contact["firstname"], ec.Entities[0]["temp.firstname"]);
Log.Assert((string)((AliasedValue)ec.Entities[1]["temp.lastname"]).Value == (string)contact["lastname"], "Expected {0} Got {1}", contact["lastname"], ec.Entities[1]["temp.lastname"]);
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Microsoft Dynamics 365
© 2016 Microsoft. All rights reserved. Copyright

