Как я могу получить сущности одата вложения в выводе XML / JSON? - PullRequest
0 голосов
/ 15 сентября 2018

Я работаю над API, который использует ODATA.Мы строим модели в C # и выставляем их через конечную точку.У меня есть старая модель, которая работает, как ожидалось, и данные, когда я достигаю конечной точки, выглядят так:

<entry>
  <id>URL</id>
  <category term="WorkOrderModel" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
  <link rel="edit" href="<URL>" />
  <link rel="self" href="<URL>" />
  <content type="application/xml">
      <m:properties>
        <d:WorkOrderId m:type="Edm.Int32">1000</d:WorkOrderId>
        <d:Assemblies m:type="Collection(AssemblyModel)">
          <d:element>
            <d:AssemblyId m:type="Edm.Int32">1</d:AssemblyId>
            ... element continued ...
          </d:element>
          ...

Проблема, с которой я столкнулся, заключается в том, что я создал новую конечную точку, основываясь на этой старойодин, но он делает что-то странное ... вместо того, чтобы помещать вложенные сущности в модель ... он показывает конечные точки для доступа к вложенным сущностям (я никогда не устанавливал эти конечные точки в коде и не хочу их ..Мне нужно, чтобы данные возвращались в том же формате, что и приведенный выше фрагмент.

Новая конечная точка отображает возвращаемые данные, например:

<entry>
  <id>URL</id>
  <category term="MSProjectModel" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
  <link rel="edit" href="<URL>" />
  <link rel="self" href="<URL>" />
  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Assignments" type="application/atom+xml;type=feed" title="Assignments" href="ODATAURLPATH/Assignments" />
  <content type="application/xml">
      <m:properties>
        <d:id>5b9abb4d3cd43942c4eac06b</d:id>
        <d:ProjectId m:type="Edm.Guid">5a6a3f84-83b6-e611-80d1-00155d084707</d:ProjectId>
        ...
      </m:properties>
  </content>

По сути, эта строка не должна бытьтам ... вместо этого это должна быть вложенная сущность, такая как Assemblies внутри WorkOrderModel в первом примере:

<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Assignments" type="application/atom+xml;type=feed" title="Assignments" href="ODATAURLPATH/Assignments" />

Как мне получить во второй модели показывать все вложенные сущности в возвращаемых данных, как этоделает в первой модели?

В моем файле WebApiConfig.cs я просто делаю это для обеих моделей, чтобы показать их:

builder.EntitySet<WorkOrderModel>("WorkOrder");
IEdmModel model = builder.GetEdmModel();
config.Routes.MapODataServiceRoute("odata", "odata", model);

Пожалуйста, дайте мне знать, если я неЧтобы прояснить что-либо еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...