这是我在FetchXML的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...
...
}
}
你如何执行你的fetxml?使用retrievemultiple将始终为您提供results集合,其中retrieve将返回您真正想要的实体xml实体。 –
我不知道使用optionset名称值获取结果的任何方式,但是如果您解释了您为什么要使用optionset名称值获取结果的目标?任何人都可以为此提出解决方法。 –
@Shane_Yo我正在使用RetrieveMultiple – kei