我從Breeze WebApi返回的JSON結果沒有正確地分配給挖空observable當圖的根中的實體先前存在爲子實體。帶有擴展子實體的微風entityquery沒有正確地分配給knockout可觀察數組
我有一個具有1個或多個租戶實體用戶和租戶可以有一個或多個用戶(多對多的關係)
當運行一個查詢我得到以下JSON結果(我只秀相關部分):
{ "$id": "1",
"$type": "Imp.Tenant, Imp",
"TenantId": "14ff1ad0-6807-e411-befb-2c41384f9e84",
"Users": [{
"$id": "2",
"$type": "Imp.User, Imp",
"UserId": "d38a68c2-4407-e411-befb-2c41384f9e84",
"Firstname": "Richard",
"Tenants": [{
"$ref": "1"
},{
"$id": "3",
"$type": "Imp.Tenant, Imp",
"TenantId": "5c8d8852-6907-e411-befb-2c41384f9e84",
"Users": [{
"$ref": "2"
}
],
}
],
"CurrentTenant": {
"$ref": "1"
},
"CurrentTenantId": "14ff1ad0-6807-e411-befb-2c41384f9e84",
}
],
"CreatedBy": {
"$ref": "2"
},
"CreatedById": "d38a68c2-4407-e411-befb-2c41384f9e84"
},{
"$ref": "3"
}
我運行以下查詢(打字稿代碼):
var query = breeze.EntityQuery
.from("userTenants")
.withParameters({ userId: userId });
return query
.using(this.BreezeEntityManager)
.execute()
.then((data) => this.Tenants(<Imp.Tenant[]>data.results))
,微風控制器看起來是這樣的:
public IQueryable<Tenant> userTenants(Guid userId)
{
var User = _ContextProvider.Context.Users
.Include("Tenants")
.FirstOrDefault(x => x.UserId == userId);
return User.Tenants.AsQueryable();
}
似乎因爲實體$ REF 1(ID 「14ff1ad0-6807-E411-befb-2c41384f9e84」)也是從用戶子實體它得到在JSON的端部稱爲$ REF 3串。
當試圖分配該值的knockoutObservableArray,只有第一個租戶實體正確分配,但第二個($ REF 3)獲得一個功能在監視窗口中顯示:
function(){
return mc.refMap[nodeRefId];
}
哪有我檢索用戶鏈接到的所有租戶?
對不起,我不能repro你的問題。您可以創建一個簡單的repro解決方案並將其發送到[email protected]? –
是租戶給用戶一個多對多的關係嗎? –
@PW卡德是的,用戶的租戶是多對多的。 – RHAD