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

子类用new隐藏基类属性时ODataConventionModelBuilder模型构建异常问题

解决方法

1. 忽略基类的CloudType属性

ODataConventionModelBuilder会自动扫描类的继承层次,基类的CloudType(int类型)和子类的同名枚举属性冲突导致报错。可以显式让构建器忽略基类的该属性:

var builder = new ODataConventionModelBuilder();

// 获取基类的实体类型配置,忽略其CloudType属性
var baseEntityConfig = builder.EntityType<WeatherForecastBase>();
baseEntityConfig.Ignore(b => b.CloudType);

// 注册子类的实体集
builder.EntitySet<WeatherForecast>("WeatherForecasts");

// 生成EDM模型
var edmModel = builder.GetEdmModel();

2. 确保枚举类型被正确注册

如果枚举CloudType未被自动识别为OData枚举类型,需手动注册以避免后续类型错误:

// 在忽略基类属性前,先注册枚举类型
builder.EnumType<CloudType>();

配置完成后,构建器只会处理子类中用new关键字声明的CloudType枚举属性,不再受基类int类型属性影响,可成功构建模型。

内容的提问来源于stack exchange,提问作者Julio Ollarvia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 11:47:42