У меня есть простая служба WebAPI2, которая использует OData (Microsoft.AspNet.OData v5.9.1, Microsoft.AspNet.WebApi v5.2.3). Я получаю документ ниже метаданных из ссылки api/$ metadata.Добавление атрибутов EntityTypes или свойств в метаданных OData
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Global.Model">
<EntityType Name="Account">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="Edm.String" Nullable="false" />
<Property Name="ExtId" Type="Edm.String" />
<Property Name="CustomerId" Type="Edm.String" />
<Property Name="DivisionId" Type="Edm.String" />
<Property Name="Default" Type="Edm.Boolean" Nullable="false" />
<Property Name="Status" Type="Edm.Boolean" Nullable="false" />
<NavigationProperty Name="Customer" Type="Global.Model.Customer">
<ReferentialConstraint Property="CustomerId" ReferencedProperty="Id" />
</NavigationProperty>
</EntityType>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
Я хочу изменить этот документ, чтобы вернуть некоторые пользовательские атрибуты клиенту. Я не мог найти правильный образец или учебник по этому вопросу.
Мои вопросы:
1) Возможно ли даже изменение метаданных, как показано ниже;
<EntityType Name="Account" CustomAttribute="CustomValue">
<Property Name="Id" Type="Edm.String" Nullable="false" MaxLength="3" DisplayName="No" />
2) Если я создаю свои объекты с помощью Entity Framework Database First подхода, можно использовать длины, значение точности и масштаб столбцов присвоить атрибуты?
Что я нашел до сих пор;
1) Закрытые OData issue. Этот вопрос, похоже, связан с моим, но я не могу найти функцию SetNamespacePrefixMappings() или аналогичную в любом месте. Эта функция от Microsoft.Data.Edm, но мой проект имеет ссылку Microsoft.OData.Edm v6.15.0
2) Сообщение о словарях на odata.org и sample. Это может быть ответ, но я не знаю, как его использовать. С помощью этого примера можно добавить аннотации к метаданным, но это ограничено. Не точно соответствуют моим требованиям.