breezejs: свойство навигации создано, но не заполнено данными

У меня есть еще одна проблема со свойствами навигации, но на этот раз моя конфигурация - WCF Data Service + EF.

В основном метаданные выглядят хорошо, у меня есть референтные ограничения, ассоциации и т. Д.Мы установили атрибут [ForeignKey] в модели.

Свойство навигации создается на стороне клиента, но когда данные извлекаются (с использованием $ expand), коллекция не заполняется, хотя данные определенно возвращаются сервером:

Здесь есть связь между mand_id в OpenPosition и id в Mandate.I '

Мы заметили, что объект Mandate в коллекции OpenPositions содержит __deferred с URI для объекта. Я не видел этого с WebApi, так что, может быть, этопроблема, или, может быть, этоПросто нормальное поведение.

Есть ли что-то, что ям отсутствует?

РЕДАКТИРОВАТЬ

Запрос на стороне клиента:

  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);
    });

РЕДАКТИРОВАТЬ 2

Причина, по которой свойство навигации не заполнено, заключается в том, что в случае WCF Dataservice свойство навигации возвращается как объект, который содержит свойство Array, называемое results.

Принимая во внимание, что в случае WebAPI свойство навигации возвращается как массив.

Обратите внимание, что в обоих случаях использовалась одна и та же модель данных (контекст EF).

Смотрите скриншоты:

WCF:

WebAPI:

Но breeze ожидает Array в противном случае, он просто игнорирует свойство навигации и возвращает 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;

Ответы на вопрос(3)

Ваш ответ на вопрос