是否可以通过 Dynamics Nav 2016 中的 ODATA 查询所有公司

Is it possible to query all companies via ODATA in Dynamics Nav 2016

我编写了以下代码来查询 Dynamics Nav 2016 中的 ODATA 端点。我通过创建 ODATA connected service 来完成此操作。我在 URL:

中传递了一个公司名称
var navision = new Navision(
    new Uri("http://navision:7048/navision/OData/Company('Company1')"));

foreach (var foo in await navision.Foo.ExecuteAsync())
{
    Console.WriteLine(foo.Name);
}

是否可以查询Navision中的所有公司?当我省略 URL 的 /Company(...) 部分时,出现错误:

DataServiceClientException: Cannot process the request because the default Microsoft Dynamics NAV company cannot be found. You can specify a default company in the service configuration file, or specify one for each tenant, or you can add a query string in the form of "company=[name]". You can see the available companies by accessing the default OData web service, Company. For more information, see "OData Web Services" in Help.

不同的公司意味着 SQL 上物理上不同的表,名称如 [dbo].[CompanyName$TableName]。 Nav 不会为您加入。如果您使用的是租户,这些表甚至会在每个租户的数据库中分开。

所以需要查询各个公司,然后合并获取的数据。