LoggerEntriesController
の POCO タイプを返すODataController が呼び出されましたWebModels.LoggerEntry
。POCO は、クライアントとサーバー間で共有される外部ライブラリにあります。
私はこのように登録しEntitySet
ます:
var builder = new ODataConventionModelBuilder();
builder.EntitySet<WebModels.LoggerEntry>("LoggerEntries");
config.MapODataServiceRoute("odata", "api", builder.GetEdmModel());
私の/api
メタデータには次のように表示されます。
{
"@odata.context":"http://localhost:3177/api/$metadata","value":[
{
"name":"LoggerEntries","kind":"EntitySet","url":"LoggerEntries"
},{
"name":"LoggerEntry","kind":"EntitySet","url":"LoggerEntry"
}
]
}
これにより、Simple.Odata.Client が LoggerEntry を /api/LoggerEntries url に解決できないという問題が発生し、次のような厳密に型指定された呼び出しを行うと 404 が返されます。
await this.Client
.For<LoggerEntry>()
.Set(new LoggerEntry()
{
Title = title,
Message = message,
})
.InsertEntryAsync();
これにより、/api
メタデータは次のようになるはずです。
{
"@odata.context":"http://localhost:3177/api/$metadata","value":[
{
"name":"LoggerEntry","kind":"EntitySet","url":"LoggerEntries"
}
]
}
何が間違っているのか、または ODataConventionModelBuilder から後者のメタデータの結果を取得するために何をする必要があるのか わかりません。