gpt4 book ai didi

c# - 使用 ASP.NET Core OData 8.0 映射动态 odata 路由

转载 作者:行者123 更新时间:2023-12-05 05:52:09 24 4
gpt4 key购买 nike

我有一个应用程序,其中 EDM 数据类型是在应用程序运行时生成的(它们甚至可以在运行时更改)。松散地基于 OData DynamicEDMModelCreation Sample - 重构为使用新的端点路由。 EDM 模型在运行时动态生成,所有请求都转发到同一个 Controller 。

现在我想更新到最新的 ASP.NET Core OData 8.0并且整个路由发生了变化,因此当前的解决方法不再有效。

我已阅读更新 Blog1 的两篇博文Blog2似乎我不能再使用“旧”解决方法,因为端点内的函数 MapODataRoute() 现在已经不复存在了。似乎所有内置路由约定都不适用于我的用例,因为所有这些都要求在调试时存在 EDM 模型。

也许我可以使用自定义 IODataControllerActionConvention。我试图通过将它添加到路由约定来激活约定,但似乎我仍然缺少如何激活它的部分。

services.TryAddEnumerable(
ServiceDescriptor.Transient<IODataControllerActionConvention, MyEntitySetRoutingConvention>());

这种方法有效吗?甚至可以在新的 odata 预览中激事件态模型吗?或者有人对如何处理新 odata 8.0 的动态路由有一点想法吗?

最佳答案

这里有一个动态路由和动态模型的例子:

https://github.com/OData/AspNetCoreOData/blob/master/sample/ODataDynamicModel/请参阅 MyODataRoutingApplicationModelProviderMyODataRoutingMatcherPolicy,它们会将自定义 IEdmModel 传递给 Controller ​​。

HandleAllController 可以动态处理不同的类型和 edm 模型。

关于c# - 使用 ASP.NET Core OData 8.0 映射动态 odata 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70262718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com