【发布时间】:2013-08-19 15:32:51
【问题描述】:
我刚刚从 BreezeJS 1.1 升级到 1.4,但是“扩展”似乎不起作用?我可以看到我的扩展进入服务器:
http://localhost:60198/api/Data/App?$filter=Id%20eq%209&$expand=Household%2CHousehold%2FPrimary
我可以看到返回的数据:
[
{
"$id": "1",
"$type": "App.Models.Base.App, App",
"Id": 9,
"Number": "ZZZZ",
"Name": "ZZZZZ",
"Household": {
"$id": "2",
"$type": "App.Models.Base.Household, App",
"Id": 6,
"Primary": {
"$id": "3",
"$type": "App.Models.Base.Person, App",
"Id": 9,
"FirstName": "ZZZZ",
"MiddleName": "ZZZZ",
"LastName": "ZZZ",
}
},
"HouseholdId": 6
}
]
但是当我尝试访问它时,家庭财产是空的。这曾经适用于 1.1。
breeze.EntityQuery
.from("App")
.where("id", "==", id)
.expand("Household, Household.Primary")
如果记录为 json 会变成
query {"resourceName":"App","entityType":null,"wherePredicate":{"_filterQueryOp":{"_$typeName":"FilterQueryOp","name":"Equals"},"_propertyOrExpr":"id","_value":9,"_valueIsLiteral":false},"orderByClause":null,"selectClause":null,"skipCount":null,"takeCount":null,"expandClause":{"propertyPaths":["Household","Household.Primary"]},"parameters":{},"inlineCountEnabled":false,"entityManager":null}
更新:我降级到 1.2.5,它又可以工作了。我查看了代码,这里的检查看起来像这样: https://github.com/IdeaBlade/Breeze/blob/master/Breeze.Client/Scripts/breeze.debug.js#L13312 是否返回 false,因此实体没有被更新?谁知道我对微风代码库很陌生。
【问题讨论】:
-
您可以发布您的查询吗?
-
既然您已经深入研究了 Breeze 代码库中的那一行,您知道为什么
currentRelatedEntity === relatedEntity在您的案例中吗?这就是 Breeze 会退出而不设置导航属性值的原因。