我已经编写了以下代码来查询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:无法处理请求,因为找不到默认的Microsoft Dynamics NAV公司。您可以在服务配置文件中指定默认公司,或为每个租户指定一个公司,或者您可以以" company = [name]"的形式添加查询字符串。您可以通过访问默认的OData Web服务公司来查看可用的公司。有关更多信息,请参阅" OData Web服务"在帮助中。
答案 0 :(得分:2)
不同的公司意味着SQL上的物理上不同的表,其名称为[dbo].[CompanyName$TableName]
。导航不会为您加入。如果您使用的是租户,那么每个租户数据库中的表格将是独立的。
因此,您需要查询每家公司,然后合并获得的数据。