我在Breeze中进行简单的投影查询:
var p1 = new Predicate('ID', 'eq', articleID);
var p2 = new Predicate('isDeleted', '!=', true);
var p3 = new Predicate('isAutoSave', '!=', true);
var query = EntityQuery.from(entityNames.article)
.where(p1.and(p2.and(p3)))
.select('Code, Description, ImageFileName, Notes, SupplierDistance')
然后我使用实体映射器创建一个部分实体,放入一个observable以返回函数。一切都很好。
然后我意识到我需要一个相关表格中的国家名称,所以我首先尝试了#34; .expand"并被告知Breeze无法做到"扩展"和"选择"同时。没问题,会直接选择相关记录:
.select('Code, Description, Country.CountryName, ImageFileName, Notes, SupplierDistance')
但是因为没有" Country_CountryName"在我创建部分的实体上的属性,映射失败(不出所料)与" undefined不是函数"错误。我怎么能以这种方式包含相关表中的countryName字段,我无法映射实体?
我尝试将查询返回的javascript对象填充到我的observable中,但是失败并且"对象不是函数"这个错误也没有用。
答案 0 :(得分:0)
我决定实体映射最后是不必要的,并且还原为一个简单的投影查询,我手动处理"展开"。