首页 > 解决方案 > DB First Entity Framework Core 中的 Oracle 将 NUMBER(3) 映射到字节导致运行时异常

问题描述

我正在开展一个正在进行的项目,其中包含现有的 Oracle 数据库。最近,我们计划重组后端代码,并将 EF Core 作为我们的 DAL 主干。之前一切正常。但是,我们刚才遇到了一个问题。

EF Core 中的 Oracle 将实体的列类型与NUMBER(3)tobyte作为模型进行映射。AsNUMBER(3)最多可以容纳 999 个号码,而byte最多只能容纳256. 因此,大于 256 的值会引发运行时错误。

Scaffold-DbContext用来生成模型类,每个Scaffold-DbContext都会清除我所有的数据模型并根据当前的数据库表模式重新生成。最终,手动更新模型的数据类型对我来说不是一个解决方案。任何人都可以帮助我解决如何映射NUMBER(3)int/double永久而不被每个覆盖Scaffold-DbContext?提前致谢。

标签: c#oracletypesormentity-framework-core

解决方案


推荐阅读