我正在使用Dapper将我的调用包装到Oracle存储过程中。我映射到的许多模型都具有int?
属性,因为它们表示返回游标中可能为null的列。
我的方法存在两个问题。
Dapper将Oracle Number
视为decimal
,其精确度为0
而不是int
。几乎在所有情况下,我的数据库中的Number
表示int
或int?
而不是decimal
或decimal?
。
Dapper并不总是“尊重”目标模型属性的Nullable
-
当存储过程返回带有属性TSomeType
的{{1}}光标且返回的行中至少有一个具有decimal? SomeColumn
的值时,它将将返回列的SomeColumn
值的所有行映射到null
而不是0
,这是我的愿望。
我试着编写一个可以应用于所有模型的自定义null
,以便将ITypeMap
映射到DbNull
而不是null
,因为该界面未写入一种有利于全局列转换的方式,而不是转换为特定类型。
感谢任何帮助。