breezejs: właściwość nawigacji jest tworzona, ale nie jest wypełniona danymi

Mam jeszcze inne problemy z właściwościami nawigacji, ale tym razem moja konfiguracja to usługa danych WCF + EF.

Zasadniczo metadane wyglądają dobrze, mam ograniczenia referencyjne, skojarzenia itd ... Ustawiłem atrybut [ForeignKey] w modelu.

Właściwość nawigacyjna jest tworzona po stronie klienta, ale po pobraniu danych (za pomocą $ expand) kolekcja nie jest wypełniana, chociaż serwer zdecydowanie zwraca dane:

Powiązanie tutaj znajduje się między mandate_id w OpenPosition a id on Mandate.

Zauważyłem, że jednostka Mandate w kolekcji OpenPositions zawiera __deferred z uri do jednostki. Nie widziałem tego w WebApi, więc może to jest problem, a może po prostu normalne zachowanie.

Czy czegoś brakuje?

EDYTOWAĆ

Zapytanie po stronie klienta to:

  var query = breeze.EntityQuery.from("Mandates").inlineCount().expand("OpenPositions");
  return manager.executeQuery(query.using(service)).then(function (result) {
        logger.info(result);
    }).fail(function (error) {
        logger.error(error);
    });

EDYCJA 2

Powodem, dla którego właściwość nawigacji nie jest wypełniona, jest to, że w przypadku usługi WCF Dataservice właściwość nawigacji jest zwracana jako obiekt, który zawiera właściwość Array zwaną wynikami.

Podczas gdy w przypadku WebAPI, właściwość nawigacji jest zwracana jako tablica.

Należy zauważyć, że w obu przypadkach użyto tego samego modelu danych (kontekst EF).

Zobacz zdjęcia:

WCF:

WebAPI:

Ale wiatr oczekuje, że Array jest inaczej, po prostu ignoruje właściwość nawigacji i zwraca wartość null:

   // needed if what is returned is not an array and we expect one - this happens with __deferred in OData.
        if (!Array.isArray(relatedRawEntities)) return null;

questionAnswers(3)

yourAnswerToTheQuestion