【发布时间】:2020-08-31 15:01:22
【问题描述】:
我正在使用 OData ASP.NET Core 7.4.1
例如,通过请求GET https://localhost:44346/api/v1/estates/74EEAB44-B8E7-EA11-B361-D43B04C15376?$expand=tenants,我可以得到一个信息为tenants的实体
{
"@odata.context": "https://localhost:44346/odata/v1/$metadata#Estates(tenants(),tenants())",
"value": [
{
"updatedOn": "2020-08-26T16:22:01.03+02:00",
"tenants": [
{
"name": "tenant"
}
]
}
]
}
但是通过 Put 请求 PUT https://localhost:44346/odata/v1/estates(74EEAB44-B8E7-EA11-B361-D43B04C15376)?$expand=tenants ,我可以获得返回的实体但没有 tenants
{
"@odata.context": "https://localhost:44346/odata/v1/$metadata#Estates(tenants(),tenants())",
"value": [
{
"updatedOn": "2020-08-26T16:22:01.03+02:00",
"tenants": []
}
]
}
问题:如何在PUT 请求中返回返回实体的tenants,因为我不想对服务器进行GET(id) 调用以刷新创建/更新的实体。服务器应返回与GET(id) 完全相同的实体表示。
有一个关于此问题的ticket 打开但未解决。有人解决了这个问题吗?
【问题讨论】:
-
嗨,@Antoine V,HttpPut 在我的 Odata 上工作。你能分享一下你的 HTTP PUT 方法吗?
-
是的,您需要共享处理 PUT 的控制器方法,您从该方法使用的响应机制决定了响应如何以及是否使用
tenants导航数据序列化
标签: c# asp.net-core odata asp.net-core-3.1