Это мой FetchXML...
<fetch version="1.0" mapping="logical">
<entity name="cs_testparameter" >
<attribute name="cs_testcalculation" />
</entity>
</fetch>
который возвращает следующее:
<resultset morerecords="0">
<result>
<cs_testcalculation name="Addition" formattedvalue="717640000">717640000</cs_testcalculation>
</result>
<result>
<cs_testcalculation name="Subtraction" formattedvalue="717640001">717640001</cs_testcalculation>
</result>
<result>
<cs_testcalculation name="Multiplication" formattedvalue="717640002">717640002</cs_testcalculation>
</result>
<result>
<cs_testcalculation name="Division" formattedvalue="717640003">717640003</cs_testcalculation>
</result>
</resultset>
Я хотел бы отфильтровать свои результаты, чтобы он возвращал только TestParameter
объектов, у которых имя атрибута testCalculation
равно, например, Addition
. Как бы я это сделал?
Я знаю, что могу фильтровать, используя числовое значение, используя...
<fetch version="1.0" mapping="logical">
<entity name="cs_testparameter" >
<attribute name="cs_testcalculation" />
<filter type="and">
<condition attribute="cs_testcalculation" operator="eq" value="717640000" />
</filter>
</entity>
</fetch>
... но я бы предпочел не использовать числовое значение, а фильтровать по самому имени. Это возможно?
Редактировать: В конце концов, я буду использовать это, чтобы сделать что-то вроде...
string fetchQuery = @"--my fetchXML here...--";
FetchExpression fetchTestParameters = new FetchExpression(fetchQuery);
EntityCollection testParameters = context.RetrieveMultiple(fetchTestParameters);
foreach (var testParameter in testParameters.Entities)
{
switch (testParameter.cs_testcalculation["name"])
{
case "Addition":
//do something...
case "Subtraction":
//do something else...
...
}
}