Я работаю над 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);
Пожалуйста, дайте мне знать, если я неЧтобы прояснить что-либо еще.