多表查询的结果数据(请参阅http://www.breezejs.com/documentation/query-examples#Lookups)并不完全符合我的预期。我期待数组(实体字段)的数组(实体字段)的数组(实体的数据项)。但是,我得到的是一组数组。外部数组是 - 如预期的 - 填充每个表的项目。但是,内部对象不是以Array的形式输入的。他们确实有成员像索引项(0,1,2,...)一样命名,但由于它不是数组,我不能使用length或forEach。这是微风中的一个错误吗?多表查询的结果是非数组的数组
请注意,当我查询一个表中的项目时,结果被输入为数组(实体字段)。
这里是我的服务器代码:
[HttpGet]
public object _Combo()
{
return new IOrderedQueryable[] { _contextProvider.Context.Company, _contextProvider.Context.Project, _contextProvider.Context.ProjectArea };
}
这里是我的客户端代码:
entityManager.executeQuery(breeze.EntityQuery.from("_Combo"))
.then(function (data) {
var companies = data.results[0];
//companies is not an array, but does have numbered members!
}).fail(queryFailed);
对于服务器代码在您编写时返回的东西的形状是正确的;它不是一个数组,而是一个名为“0”,“1”,“2”等属性的散列。我对此感到惊讶。您可以在DocCode中找到您的方法示例(请参阅'NorthwindController.LookupsArray')。它是一个错误或功能:)?虽然这是可以生存的(你可以迭代散列的属性),但我更喜欢的方法(也是在DocCode中称为“Lookups”)是Jay在他的回答中描述的方法。 – Ward 2013-03-17 06:22:02