EF核心价值转换器在Oracle中不起作用

r55awzrz  于 2022-11-03  发布在  Oracle
关注(0)|答案(1)|浏览(122)

我使用Ef核心和Oracle
我在Oracle数据库中有一个数据类型为NVARCHAR2(20)的列,但在我的班级模型中,我希望将其转换为十进制,这是ValueConverter的配置:

entity.Property(e => e.ColumnName)
                .HasMaxLength(20)
                .HasColumnType("NVARCHAR2(20)")
                .HasColumnName("COLUMN_NAME")
                .HasConversion(
                v => v.ToString(),
                v => v=="" ? 0 : decimal.Parse(v, NumberStyles.Any, CultureInfo.InvariantCulture));

这是我的模特:

public decimal? ColumnName{ get; set; }

但在使用此查询后,此错误显示:

ORA-00932: inconsistent datatypes: expected NUMBER got NCHAR'
ccrfmcuu

ccrfmcuu1#

I通过Oracle查询转换列,检查数字可组合性

(case when REGEXP_LIKE(ColumnName, '^[[:digit:]]+$') then to_number(ColumnName) else 0 end) as ColumnName

相关问题