2013-07-19 2 views
0

Breeze에서 Entity Framework 코드를 먼저 사용하여 호출 데이터를 웹 서비스로 반환합니다.Breeze가 전체 데이터 모델을 반환하지 않습니다.

몇 가지 수준의 데이터 모델이 있습니다. 이 인스턴스에서는 "DefaultItems"라는 숫자가있는 "schedule"객체를 반환합니다. 각 객체에는 비용이 있으며 자체 속성이있는 단일 "type"자식이 있습니다.

{ 
    $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 객체를 반복하고 비용을 회수 할 수도 있습니다. 하지만 DefaultItem 내부의 Type 객체는 존재하지 않습니다.

잘못된 이름을 사용하여 바인딩하는 것이 아닙니다. 브라우저 디버거에서 일시 중지하고 브라우저에있는 JSON을 드릴 다운하면 빈 오브젝트가 아닌 유형 오브젝트가 전혀 없습니다.

어떻게 웹 서비스에서 나올 수 있습니까?하지만 Breeze가 브라우저로 다시 전달하는 데이터에는없는 것 같습니까?

답변

0

분명히 Breeze에서 관계를 전파하려면 두 가지 방법을 모두 정의해야합니다. 그래서 내 Type 클래스의 기본 키가 DefaultItem 클래스에 대한 외래 키로 표시되었는지 확인해야했습니다.

이것은 현재 버그로 등록되었습니다. 그것은 확실히 조금 성가심입니다.

+0

우리는이 문제를 보지 못했으며이 분야의 버그를 모릅니다. 따라서 [email protected]에서 기회를 얻으면 repro를 보내주십시오. 고마워. –

+0

쉬운 repro는 아니지만 요청에 따라 세부 정보를 보냅니다. –

관련 문제