例如:我有3个实体客户,应用程序,案例。客户表单需要从Case表单中获取开始日期,结束日期并计算日期之间的差异。
案例来自具有应用程序ID,也存在于客户表单中。如何从案例中找到的应用程序ID获取客户实体并从案例更新到客户?我正在开发一个插件,是否应该有关系或查找字段?当赋予权利及其属性值时,使用“高级查找”可以实现类似的功能。高级查找获取所有结果。
任何帮助都会受到赞赏!!
答案 0 :(得分:0)
就像Henk van Boeijen所说,你可以做到以下几点:
private void DoFetchXmlToQueryExpressionConversion()
{
// Create a Fetch query that we will convert into a query expression.
var fetchXml =
@"<fetch mapping='logical' version='1.0'>
<entity name='opportunity'>
<attribute name='name' />
<filter>
<condition attribute='estimatedclosedate' operator='next-x-fiscal-years' value='3' />
</filter>
<link-entity name='account' from='accountid' to='customerid'>
<link-entity name='contact' from='parentcustomerid' to='accountid'>
<attribute name='fullname' />
<filter>
<condition attribute='address1_city' operator='eq' value='Bellevue' />
<condition attribute='address1_stateorprovince' operator='eq' value='WA' />
</filter>
</link-entity>
</link-entity>
</entity>
</fetch>";
// Run the query with the FetchXML.
var fetchExpression = new FetchExpression(fetchXml);
EntityCollection fetchResult =
_serviceProxy.RetrieveMultiple(fetchExpression);
Console.WriteLine("\nOutput for query as FetchXML:");
DisplayOpportunityQueryResults(fetchResult);
// Convert the FetchXML into a query expression.
var conversionRequest = new FetchXmlToQueryExpressionRequest
{
FetchXml = fetchXml
};
var conversionResponse =
(FetchXmlToQueryExpressionResponse)_serviceProxy.Execute(conversionRequest);
// Use the newly converted query expression to make a retrieve multiple
// request to Microsoft Dynamics CRM.
QueryExpression queryExpression = conversionResponse.Query;
EntityCollection result = _serviceProxy.RetrieveMultiple(queryExpression);
// Display the results.
Console.WriteLine("\nOutput for query after conversion to QueryExpression:");
DisplayOpportunityQueryResults(result);
}
来自here
你也可以用类似的方式做Linq Query。
查找关系名称: 转到系统&gt;自定义&gt;案例&gt;查看关系(1:N / N:1 / N:N)找到与您的应用程序的正确关系点击它,查看&gt;获取'名称'这是架构名称。如果您的查询具有此模式名称作为其链接(加入),您应该得到正确的结果。