1

我正在使用 Dynamics NAV 2009 WebService (SOAPish)。具体我说的是ReadMultiple方法MSDNA

filterArray采用Entity_Filter对象的数组。每个Entity_Filter都有一个FieldCriteria属性。

现在我想知道,如何将过滤器应用为 OR not and。

例如,我通过了两个过滤器:

Entity_Filter { Field: "Name", Criteria: "*banana*" }
Entity Filter { Field: "Color", Criteria: "yellow"}

如果我将其发送到 ReadMultiple,我会得到所有名称中包含“香蕉”且颜色为黄色的条目。我该怎么做才能获得所有名称中包含“香蕉”黄色的条目?

4

1 回答 1

2

不幸的是,无法对记录应用“OR”过滤器。ReadMultiple 方法以与 C/AL 方法 SETFILTER 或 SETRANGE 相同的方式应用过滤器。它必须在两个单独的请求中完成。

再想一想,您可以在单个请求中完成,但使用 Linq 使用 OData 服务:

NAV nav = new NAV(new Uri("http://ServerName:Port/DynamicsNAV71/OData/Company('Your Company Name')"));
nav.Credentials = CredentialCache.DefaultCredentials;
var items = from i in nav.ItemsList where i.Name.Equals("Banana") || i.Color.Equals("Yellow") select i;

其中“ItemsList”是“页面”类型的 OData Web 服务

于 2015-09-21T20:26:05.937 回答