检索具有在不同实体中找到的属性值的实体

时间:2015-01-16 21:27:35

标签: dynamics-crm-2011 dynamics-crm

例如:我有3个实体客户,应用程序,案例。客户表单需要从Case表单中获取开始日期,结束日期并计算日期之间的差异。

案例来自具有应用程序ID,也存在于客户表单中。如何从案例中找到的应用程序ID获取客户实体并从案例更新到客户?我正在开发一个插件,是否应该有关系或查找字段?当赋予权利及其属性值时,使用“高级查找”可以实现类似的功能。高级查找获取所有结果。

任何帮助都会受到赞赏!!

1 个答案:

答案 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;获取'名称'这是架构名称。如果您的查询具有此模式名称作为其链接(加入),您应该得到正确的结果。