找不到WebApi Core 2.2 OData资源/路径

我正在使用WebApi Core 2.2。 microsoft OData客户端正在从WPF应用程序添加新的父记录以及子记录(Deal + DealFee)。我在Windows 10的IIS中托管。

当我调用container.SaveChanges()时,它成功调用服务以添加父Deal记录,但是随后对该URL进行了SECOND POST操作(由MS odata客户端lib生成):

POST http://localhost/mysite/odata/Deals(14)/DealFees

(请注意,其中包括刚添加交易时生成的ID 14)

这是来自MS odata客户端库的两个独立的POST,显然不是“深度插入”。但是,这导致生成404(NotFound),我可以在Fiddler中观察到。以下网址可以正常运行:

/odata/Deals
/odata/Deals(14)
/odata/DealFees

似乎WebApi Core 2.2服务未处理到/ Deals(14)/ DealFees路径的POST,或者/ Deals(14)/ DealFees不是有效的odata Uri吗? OData通常支持这种路径吗?

我不知道。谁能阐明正在发生的事情?

haoyun1126 回答:找不到WebApi Core 2.2 OData资源/路径

到目前为止,WebAPI OData不支持深度插入。在我看来,客户端正在使用两个单独的发布请求更新导航的资源集和资源集,而得到404的原因是服务中没有映射到第二个请求URI的操作。 / p>

该服务可以通过引入具有默认OData路由约定的PostToDealFeesFromDeals控制器操作或使用属性路由来为此类请求映射操作来支持此操作。

如果该操作已经存在,则可能是第一个请求没有完成创建新记录,而第二个请求被触发,因此是404。

本文链接:https://www.f2er.com/3133984.html

大家都在问