Я реализовал пользовательскую службу ODATA.
Кажется, что ODATA не различает guish между именем свойства и идентификатором свойства. Возьмите этот файл метаданных:
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:DataServices>
<Schema Namespace="ttt" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<EntityType Name="Non table data">
<Key>
<PropertyRef Name="key"/>
</Key>
<Property Name="key" Type="Edm.String" Nullable="true"/>
<Property Name="period" Type="Edm.String" Nullable="true"/>
<Property Name="period" Type="Edm.String" Nullable="true"/>
</EntityType>
<EntityContainer Name="DemoContainer">
<EntitySet Name="Non table data" EntityType="ttt.Non table data"/>
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
Есть 2 свойства с периодом имени - это означает, что метаданные недействительны (я думаю). Тем не менее, я хочу дать своим пользователям возможность определять свойства самостоятельно и не хочу проверять, являются ли имена уникальными. Также имена могут измениться.
Поэтому я хочу использовать UUID в качестве идентификатора идентификатора. Это означает, что мне не нужно заботиться о том, какие имена определяет пользователь.
Файл данных должен выглядеть следующим образом:
{
"@odata.context": "http://192.168.0.100:4000/odata.svc/9007662e-6776-4ccb-bd5d-643a0a4f04b6/e9ba37768ae7e2e395e61cba55ff271a/$metadata#Non table data",
"value": [
{
"72dfca7b-2a32-4188-a895-3e7c9c0d30a0": "1",
"4e674922-0dec-41eb-a92a-e4ea0b9051e7": "07/2020",
"cee801ec-6db5-4153-8c86-0633b169e323": "08/2020",
},
]
}
Есть ли способ использовать идентификатор в файл данных без использования его в качестве описания столбца?