You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core OData 按请求动态切换EDM模型功能是否已有原生支持?需提交PR吗

目前ASP.NET Core OData 8.x及更早的官方稳定版,还是默认使用全局唯一的EDM模型,没有原生支持按用户/请求动态切换EDM模型的能力。官方虽然预留了IModelSelector之类的扩展点可以自定义模型选择逻辑,但仅靠这些扩展点没法完整实现动态模型的生成、缓存、和请求上下文绑定等全流程能力,还是需要修改核心中间件的源码才能做到你实现的效果。

至于要不要提交PR,只要你的实现符合这几个要求就完全可以提交:

  • 不破坏现有全局单例模型的默认逻辑,能兼容老项目的使用习惯
  • 动态模型的实现符合OData的官方规范,没有引入自定义的非标准行为
  • 提供了通用的扩展接口,其他开发者可以根据自己的需求自定义模型的生成、匹配规则,不是只适配你自己的业务场景
  • 有配套的单元测试覆盖核心逻辑
    现在OData社区对多租户、按权限动态返回EDM这类需求的呼声很高,符合要求的PR被接纳的概率很高。

你提到的默认全局EDM生成的示例代码如下:

private static IEdmModel GetEdmModel()
{
    var odataBuilder = new ODataConventionModelBuilder();

    //odataBuilder.EntitySet<Tag>("Tags");
    odataBuilder.EntitySet<Tag>("OperateTable");
    //odataBuilder.EntitySet<Tag>("Books");

    return odataBuilder.GetEdmModel();
}

内容的提问来源于stack exchange,提问作者Júlio Almeida

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:27:03