uiname
и uitype
не требуются для работы fetchXml. Они используются для представления, а не для запроса. Я думаю, что они добавлены редактором Advanced Find; следовательно "UI"
Вы можете переписать этот раздел XML следующим образом:
<link-entity name='new_yummycontract' from='new_yummycontractid' to='new_contractid' link-type='inner' alias='ad'>
<filter type='and'>
<condition attribute='new_yummycontractid' operator='eq' value='" + contractId.ToString() + @"' />
</filter>
</link-entity>
Не уверен, какую версию .NET вы используете, но вы также можете использовать специальный символ $
, чтобы указать интерполированную строку , которая, я думаю, повышает читаемость и уменьшает конкатенацию строк
string fetchLines = @$"
<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='new_yummycontractline'>
<attribute name='new_yummycontractlineid' />
<filter type='and'>
<condition attribute='new_servingtime' operator='eq' value='{servingTime}' />
<condition attribute='new_servinggroup' operator='eq' value='{servingGroup}' />
<condition attribute='new_destination' operator='eq' value='{location}' />
<condition attribute='statecode' operator='eq' value='0' />
</filter>
<link-entity name='new_yummycontract' from='new_yummycontractid' to='new_contractid' link-type='inner' alias='ad'>
<filter type='and'>
<condition attribute='new_yummycontractid' operator='eq' value='{contractId}' />
</filter>
</link-entity>
</entity>
</fetch>";