Я пытаюсь использовать адаптер BizTalk (SQL или WCF-SQL) для создания многоуровневой иерархической схемы. Мой запрос такой
SELECT
CustomerQueueMessage.customer_queue_ID AS CustomerQueueMsgID,
CustomerMaster.customer_ID AS [CustomerID],
CustomerAddressType.address_type_ID AS [AddressTypeID],
CustomerSalesRep.sales_rep_type_code AS [SalesRepTypeCode]
FROM CustomerQueue AS CustomerQueueMessage
INNER JOIN dbo.MDM_Customer AS CustomerMaster ON (CustomerQueueMessage.customer_queue_ID = CustomerMaster.customer_queue_ID)
INNER JOIN dbo.MDM_CustomerAddressType AS CustomerAddressType ON (CustomerAddressType.customer_queue_ID = CustomerMaster.customer_queue_ID)
INNER JOIN dbo.MDM_CustomerSalesRep AS CustomerSalesRep ON (CustomerSalesRep.customer_queue_ID = CustomerMaster.customer_queue_ID)
FOR XML AUTO, TYPE, ELEMENTS, XMLDATA
Когда я генерирую схему с помощью адаптера SQL, я получаю эту структуру
что я хочу это
Таблица CustomerSalesRep находится в разделе CustomerAddressType. Я хочу, чтобы CustomerSalesRep находился на одном уровне с CustomerAddressType, оба непосредственно под CustomerMaster.
Если я удалю оператор FOR XML и использую адаптер WCF-SQL для создания схемы, я не получу иерархии, все столбцы будут на одном уровне.
Любые идеи? Предпочтительно я хотел бы сделать это с помощью адаптера WCF-SQL, но и SQL тоже подойдет.