Dynamics crm 如何在LinkEntity中使用条件和筛选器?
我想创建一个Dynamics crm 如何在LinkEntity中使用条件和筛选器?,dynamics-crm,crm,xrm,query-expressions,Dynamics Crm,Crm,Xrm,Query Expressions,我想创建一个QueryExpression来模拟这个SQL语句 select * from A inner join B on A.b_id=B.ID where B.Name like "% what ever %" 这就是FetchXML的外观 <?xml version="1.0" encoding="UTF-8"?> <fetch distinct="true" mapping="logical" output-format="xml-platform" versio
QueryExpression
来模拟这个SQL语句
select * from A
inner join B on A.b_id=B.ID
where B.Name like "% what ever %"
这就是FetchXML的外观
<?xml version="1.0" encoding="UTF-8"?>
<fetch distinct="true" mapping="logical" output-format="xml-platform" version="1.0">
<entity name="A">
<attribute name="ID" />
<attribute name="sce_name" />
<link-entity name="B" alias="ab" to="b_id" from="A">
<filter type="and">
<condition attribute="Name" value="% what ever %" operator="like" />
</filter>
</link-entity>
</entity>
</fetch>
希望这是不言自明的
QueryExpression query = new QueryExpression("a") //Start on A
{
ColumnSet = new ColumnSet(), //Columns to retrieve from A
Criteria = new FilterExpression(LogicalOperator.And) //Conditions for A
{
Conditions =
{
new ConditionExpression()
}
},
LinkEntities =
{
//Link to B
new LinkEntity("a", "b", "aid", "bid", JoinOperator.Inner)
{
Columns = new ColumnSet(), //Columns to retrieve from B
LinkCriteria = new FilterExpression() //Conditions for B
{
Conditions =
{
new ConditionExpression()
}
}
}
}
};
除了James的回答之外,别忘了还可以使用已有的fetch语句进行查询:
RetrieveMultipleRequest fetchRequest1 = new RetrieveMultipleRequest
{
Query = new FetchExpression(
@"<fetch distinct="true" mapping="logical" output-format="xml-platform" version="1.0">
<entity name="A">
...
</entity>
</fetch>");
};
RetrieveMultipleRequest fetchRequest1=新建RetrieveMultipleRequest
{
Query=newfetchexpression(
@"
...
");
};
我很少写QueryExpression,因为使用fetch执行要容易得多。fetch很容易,但使用QueryExpression进行查询时应该更快。另外请注意,SDK提供了在FetchXml和QueryExpression之间转换的方法:
RetrieveMultipleRequest fetchRequest1 = new RetrieveMultipleRequest
{
Query = new FetchExpression(
@"<fetch distinct="true" mapping="logical" output-format="xml-platform" version="1.0">
<entity name="A">
...
</entity>
</fetch>");
};