我想进行高级搜索,将来自两个不同实体的字段组合在一起,这些实体彼此之间存在多对多关系。在SQL中,它非常简单,但在Dynamics中我被卡住了。
我想得到一般答案,但如果有帮助,这里有具体细节。任务是创建数据库中所有联系人的列表(列“名称”和“电子邮件”)但与第三列相结合,该列是联系人的营销列表的名称有问题属于。当然,同一个人可能会多次列出,但唯一性不是必需的(此外,每一行将通过联系人姓名和营销列表的组合等同于PK)
可行吗?如果是这样,怎么样?
答案 0 :(得分:2)
首先,这是您的查询:
<fetch mapping='logical'>
<entity name='listmember'>
<link-entity name='list' from='listid' to='listid'>
<attribute name='listname'/>
</link-entity>
<link-entity name='contact' from='contactid' to='entityid'>
<attribute name='fullname'/>
<attribute name='emailaddress1'/>
</link-entity>
</entity>
</fetch>
示例结果:
<resultset morerecords='0' paging-cookie='<cookie page="1"><listmemberid last="{E1B03485-0000-0000-0000-00155D107003}" first="{A74C877A-0000-0000-0000-00155D107003}" /></cookie>'>
<result>
<listmemberid>{A74C877A-0000-0000-0000-00155D107003}</listmemberid>
<listid.listname>List 1</listid.listname>
<entityid.fullname>Amy Pickle</entityid.fullname>
<entityid.emailaddress1>apickle@domain.com</entityid.emailaddress1>
</result>
<result>
<listmemberid>{A94C877A-0000-0000-0000-00155D107003}</listmemberid>
<listid.listname>List 2</listid.listname>
<entityid.fullname>Andrew Colley</entityid.fullname>
<entityid.emailaddress1>colley@domain.com</entityid.emailaddress1>
</result>
</resultset>
我不确定我能用一般术语来描述这一点,但是:
listmember
必须是您返回的根实体link-entity
(在这种情况下,一个到list
以获取列表名称,另一个到{{1}获取联系方式的详细信息contact
,因此需要在attribute
link-entity
我从不手工做这些。以前我使用的是James Downey的FetchXML Builder,但我相信这已不再可用了 - Stunnware做了类似的工具。