LinkEntity Class

Definition

Specifies the links between multiple entity types used in creating complex queries.

public ref class LinkEntity sealed : System::Runtime::Serialization::IExtensibleDataObject
[System.Runtime.Serialization.DataContract(Name="LinkEntity", Namespace="http://schemas.microsoft.com/xrm/2011/Contracts")]
public sealed class LinkEntity : System.Runtime.Serialization.IExtensibleDataObject
[<System.Runtime.Serialization.DataContract(Name="LinkEntity", Namespace="http://schemas.microsoft.com/xrm/2011/Contracts")>]
type LinkEntity = class
    interface IExtensibleDataObject
Public NotInheritable Class LinkEntity
Implements IExtensibleDataObject
Inheritance
LinkEntity
Attributes
Implements

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"]);

Constructors

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

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

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.

Applies to

See also