LinkEntity Class
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.
Namespace: Microsoft.Xrm.Sdk.Query
Assembly: Microsoft.Xrm.Sdk (in Microsoft.Xrm.Sdk.dll)
Inheritance Hierarchy
System.Object
Microsoft.Xrm.Sdk.Query.LinkEntity
Syntax
[DataContractAttribute(Name = "LinkEntity", Namespace = "https://schemas.microsoft.com/xrm/2011/Contracts")]
public sealed class LinkEntity : IExtensibleDataObject
<DataContractAttribute(Name := "LinkEntity", Namespace := "https://schemas.microsoft.com/xrm/2011/Contracts")>
Public NotInheritable Class LinkEntity
Implements IExtensibleDataObject
Constructors
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. |
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 |
Methods
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.) |
Examples
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"]);
Thread Safety
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also
LinkEntities
Microsoft.Xrm.Sdk.Query Namespace
Return to top
Microsoft Dynamics 365
© 2016 Microsoft. All rights reserved. Copyright