首先将 Breeze 与 Entity Framework 代码一起使用以从对 Web 服务的调用中返回数据。
我有一个有几个层次的数据模型。在这种情况下,我返回一个“schedule”对象,它有许多子“DefaultItem”,每个子都有一个成本和一个具有自己属性的“type”子。
如果您直接为其中之一调用 Web 服务,您会得到类似的结果,这与预期的一样:
{
$id:"1",
$type:"Schedule_06B188AC55B213FE4B13EA5B77D9C039007E80E9DB6F6841C055777A028C5F95, EntityFrameworkDynamicProxies-Core",
DefaultItems:[
{
$id:"2",
$type:"DefaultItem, Core",
RowId:"d422af5d-d6ca-46a3-a142-1feb93348e1d",
Cost:1,
Type:{
$id:"3",
$type:"Type, Core",
RowId:"38ed6d1b-d0b7-43cb-b958-2b2424b97759",
Type:"Type1"
},
Schedule:{
$ref:"1"
}
},
//more DefaultItem objects
{},
{}
],
RowId:"627eb2f2-ec74-4646-b3d1-d6423f84a2cd",
Start:"2010-01-18T00:00:00.000",
End:"2019-01-18T00:00:00.000"
}
然后这归结为浏览器,其中敲除用于将其绑定到数据对象。麻烦的是,在这一点上,数据似乎只有一个层次。
所以我可以毫无问题地进入 Schedule.Start 和 Schedule.End。我还可以遍历 Schedule 中的 DefaultItem 对象并取出它们的 Costs。但是 DefaultItem 中的 Type 对象不存在。
这与使用不正确的名称绑定它们无关:如果您在浏览器调试器中暂停并深入了解浏览器拥有的 JSON,则根本没有 Type 对象,甚至没有它们应该在的空对象。
为什么它们来自 Web 服务,但似乎不在 Breeze 传回浏览器的数据中?