Breeze没有返回完整的数据模型

时间:2013-07-19 10:25:33

标签: javascript entity-framework breeze

首先使用Breeze和Entity Framework代码将数据从调用返回给Web服务。

我的数据模型有几个层次。在这个例子中,我正在返回一个“schedule”对象,它有许多子“DefaultItems”,每个子对象都有一个成本和一个具有自己属性的“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"
}

然后归结为浏览器,其中使用knockout将其绑定到数据对象。麻烦的是,此时数据似乎只有一个层次。

所以我可以毫无问题地获得Schedule.Start和Schedule.End。我还可以遍历我的Schedule中的DefaultItem对象并获取其成本。但是DefaultItem中的Type对象并不存在。

这不是使用不正确的名称来绑定它们:如果你在浏览器调试器中暂停并深入查看浏览器所具有的JSON,那么根本就没有Type对象,甚至不应该是空对象。

他们怎么走出网络服务,但似乎不在Breeze传回浏览器的数据中?

1 个答案:

答案 0 :(得分:0)

显然,在Breeze中,为了传播,必须以两种方式定义关系。所以我必须确保我的Type类中的主键被标记为DefaultItem类的外键。

我相信这是目前注册的错误。这肯定有点烦人。