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

时间:2014-12-29 13:01:11

标签: 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 = true;
range.Value = string.Format(" LIKE '*{0}*'", id);
query.DataSources[0].Ranges[0] = range;

我想到了这个解决方案,因为这个有效:

range.Value = ">2000";

但不是那样使用...有没有办法解决这个问题?任何解决方法?

根据Joris的说法,在这篇文章http://daxmusings.codecrib.com/2013/09/linq-to-ax-example-using-wpf.html中,您无法使用动态Linq对字符串执行部分查询,我对QueryService也有同样的问题。

1 个答案:

答案 0 :(得分:1)

我已经在Denis Macchinetti的https://community.dynamics.com/ax/f/33/p/148074/333993.aspx得到了答案。

答案:

  

Denis Macchinetti于2014年12月29日上午10:32回复

     

嗨爱神

     

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

     

查看动态查询http://msdn.microsoft.com/en-us/library/gg847959.aspx   部分。

     

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

     

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

     

一个例子是标准类CustTransQueryBuilder。

     

通过这种方式,您可以处理AX!中的“喜欢”条件!

     

其他链接:

     

http://blogs.msdn.com/b/axsupport/archive/2012/02/17/calling-the-query-service.aspx

     

http://msdn.microsoft.com/en-us/library/gg879657.aspx