Link 到相同 Table / 实体的 CRM QueryExpression
CRM QueryExpression with Link to Same Table / Entity
我正在尝试使用 QueryExpression 和 LinkEntity 在 CRM 中执行以下 SQL 等效查询。有任何想法吗?我很困惑。我以前使用过 LinkEntity,但不确定如何引用或别名相同的实体类型。
select t1.UoMId, t1.BaseUoM, t1.UoMScheduleId, t1.Name, t1.Quantity
from UoMBase t1
inner join UoMBase t2 on t1.UoMScheduleId = t2.UoMScheduleId
where t2.UoMId = '57E59AB7-AC8F-E511-80F0-005056BE36DF';
这将产生以下实体记录:
尝试将以下内容转换为 QueryExpression:
<fetch mapping="logical" version="1.0">
<entity name="UoM">
<attribute name="UoMId" />
<attribute name="BaseUoM" />
<attribute name="UoMScheduleId" />
<attribute name="Name" />
<attribute name="Quantity" />
<link-entity name="UoM" from="UoMScheduleId" to="UoMScheduleId" alias="t2" link-type="inner">
<filter>
<condition attribute="UoMId" operator="eq" value="57E59AB7-AC8F-E511-80F0-005056BE36DF" />
</filter>
</link-entity>
</entity>
</fetch>
QueryExpression query = new QueryExpression("uom");
query.ColumnSet = new ColumnSet(new[] { "uomid", "baseuom", "uomscheduleid", "name", "quantity", });
query.LinkEntities.Add(new LinkEntity("uom", "uom", "uomscheduleid", "uomscheduleid", JoinOperator.Inner) { EntityAlias = "t2" });
query.Criteria.AddCondition("t2", "uomid", ConditionOperator.Equal, guidID);
EntityCollection result = OrganizationService.RetrieveMultiple(query);
我正在尝试使用 QueryExpression 和 LinkEntity 在 CRM 中执行以下 SQL 等效查询。有任何想法吗?我很困惑。我以前使用过 LinkEntity,但不确定如何引用或别名相同的实体类型。
select t1.UoMId, t1.BaseUoM, t1.UoMScheduleId, t1.Name, t1.Quantity
from UoMBase t1
inner join UoMBase t2 on t1.UoMScheduleId = t2.UoMScheduleId
where t2.UoMId = '57E59AB7-AC8F-E511-80F0-005056BE36DF';
这将产生以下实体记录:
尝试将以下内容转换为 QueryExpression:
<fetch mapping="logical" version="1.0">
<entity name="UoM">
<attribute name="UoMId" />
<attribute name="BaseUoM" />
<attribute name="UoMScheduleId" />
<attribute name="Name" />
<attribute name="Quantity" />
<link-entity name="UoM" from="UoMScheduleId" to="UoMScheduleId" alias="t2" link-type="inner">
<filter>
<condition attribute="UoMId" operator="eq" value="57E59AB7-AC8F-E511-80F0-005056BE36DF" />
</filter>
</link-entity>
</entity>
</fetch>
QueryExpression query = new QueryExpression("uom");
query.ColumnSet = new ColumnSet(new[] { "uomid", "baseuom", "uomscheduleid", "name", "quantity", });
query.LinkEntities.Add(new LinkEntity("uom", "uom", "uomscheduleid", "uomscheduleid", JoinOperator.Inner) { EntityAlias = "t2" });
query.Criteria.AddCondition("t2", "uomid", ConditionOperator.Equal, guidID);
EntityCollection result = OrganizationService.RetrieveMultiple(query);