J'utilise FetchXml pour interroger CRM 4.0. Nous avons un cas particulier qui nécessitera une jointure composite entre les entités CRM. Le FetchXml schema indique que plusieurs éléments d'entité de liaison sont autorisés et indique également que plusieurs éléments de filtre/condition peuvent être ajoutés à une entité de liaison. Le problème auquel je suis confronté est que l'attribut value de l'élément condition ne semble pas autoriser un nom d'entité/colonne. Il attend une valeur explicitement déclarée.Les jointures composites sont-elles possibles à l'aide de FetchXml dans Microsoft Dynamics CRM 4.0?
Par exemple, FetchXml vous permet de spécifier ceci:
<link-entity name='myentity' from='column1' to='column2'/>
... qui fait l'équivalent T-SQL de ceci:
JOIN myentity on column1 = column2
Et il vous permet de spécifier ceci:
<link-entity name='myentity' from='column1' to='column2'>
<filter type='and'>
<condition attribute='column3' operator='eq' value='myvalue' />
</filter>
</link>
... qui est l'équivalent T-SQL de ceci:
JOIN myentity on column1 = column2 AND column3 = 'myvalue'
FetchXml ne semble toutefois pas, de fournir un équivalent de ceci:
JOIN myentity on column1 = column2 AND column3 = column4
Notez la différence. FetchXml fournit des conditions dans la jointure, mais il semble fournir une jointure composite, c'est-à-dire une jointure entre plusieurs colonnes.
Est-ce que quelqu'un dans le cyberespace a été en mesure d'effectuer une jointure composite en utilisant FetchXml dans CRM 4.0? Merci!
Plus d'informations:
Je chasse une réponse qui utilise FetchXml pour ce faire - pas SQL ou la syntaxe QueryExpression. Le SQL ci-dessus est là juste pour expliquer le concept.
D'accord. Après avoir posté cette question, j'ai fini par expérimenter plusieurs requêtes ... et utiliser LINQ pour combiner les deux ensembles de résultats dans ce dont j'ai besoin. Heureusement, LINQ * supporte * les jointures sur plusieurs colonnes! La solution LINQ est propre et lisible. – WiregrassCoder
Oh oui? Était-ce en utilisant les nouvelles extensions développeur avancées (Microsoft.Xrm.Client.sdk) et les classes générées avec CrmSvcUtil.exe? Malheureusement, notre solution a trop d'entités/relations personnalisées (quelque chose) et je n'ai pas encore été capable de passer à autre chose (timeouts). Supposément, ils vont vous permettre de définir le délai d'attente dans le futur. –