C# 如何在Dynamics QueryService上执行部分字符串查询?

C# 如何在Dynamics QueryService上执行部分字符串查询?,c#,axapta,dynamics-ax-2012,aif,C#,Axapta,Dynamics Ax 2012,Aif,我正在使用Dynamics AIF用C#编写这段代码 如何在Dynamics QueryService上执行部分字符串查询 动力学查询如下所示: WHERE %1.Field LIKE '*partialstring*' 这就是我正在做的: QueryDataRangeMetadata range = new QueryDataRangeMetadata(); range.FieldName = field; range.TableName = tableName; range.Enabled

我正在使用Dynamics AIF用C#编写这段代码

如何在Dynamics QueryService上执行部分字符串查询

动力学查询如下所示:

WHERE %1.Field LIKE '*partialstring*'
这就是我正在做的:

QueryDataRangeMetadata range = new QueryDataRangeMetadata();
range.FieldName = field;
range.TableName = tableName;
range.Enabled = true;
range.Value = string.Format(" LIKE '*{0}*'", id);
query.DataSources[0].Ranges[0] = range;
我考虑过这个解决方案,因为这个方案有效:

range.Value = ">2000";
但不是那种用。。。有什么办法解决这个问题吗?有解决办法吗


根据Joris的说法,在这篇文章中,你不能使用dynamics Linq对字符串执行部分查询,我的QueryService也有同样的问题。

我已经从Denis Macchineti那里得到了答案

答复:

Denis Macchineti于2014年12月29日上午10:32作出回应

嗨,爱神

在我看来,您可以使用动态查询

看看动态查询 节

实际上,创建一个扩展AifQueryBuilder的AOT类 班级

然后调用QueryServiceClient.ExecuteDynamicQuery方法并传递 X++查询类的名称和任何查询参数

一个例子是标准类CustTransQueryBuilder

这样,您就可以处理AX内部的“like”条件了

其他链接: