我从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