Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Dapper将具有null值的可为null的Oracle数据库列映射为默认值(T),而不是null_C#_Oracle_Ado.net_Dapper - Fatal编程技术网

C# Dapper将具有null值的可为null的Oracle数据库列映射为默认值(T),而不是null

C# Dapper将具有null值的可为null的Oracle数据库列映射为默认值(T),而不是null,c#,oracle,ado.net,dapper,C#,Oracle,Ado.net,Dapper,我正在使用Dapper包装对Oracle存储过程的调用。我映射到的许多模型都具有int?属性,因为它们表示返回游标中可能为空的列 我的方法有两个问题 Dapper认为OracleNumbers是decimals,具有0精度,而不是ints。几乎在所有情况下,我的数据库中的数字都意味着int或int?而不是decimal或decimal? Dapper并不总是“尊重”目标模型属性的可空性 当存储过程返回一个指针TSomeType,其属性为decimal时?SomeColumn和至少有一个返回行的S

我正在使用Dapper包装对Oracle存储过程的调用。我映射到的许多模型都具有
int?
属性,因为它们表示返回游标中可能为空的列

我的方法有两个问题

  • Dapper认为Oracle
    Number
    s是
    decimal
    s,具有
    0
    精度,而不是
    int
    s。几乎在所有情况下,我的数据库中的
    数字
    都意味着
    int
    int?
    而不是
    decimal
    decimal?

  • Dapper并不总是“尊重”目标模型属性的可空性

  • 当存储过程返回一个指针
    TSomeType
    ,其属性为
    decimal时?SomeColumn
    至少有一个返回行的
    SomeColumn
    具有值,它将所有返回列的
    null
    值的行映射到
    0
    ,而不是我所希望的
    null

    我尝试编写一个定制的
    ITypeMap
    ,它可以应用于所有模型,将
    DbNull
    映射到
    null
    ,而不是
    default(T)
    ,因为接口的编写方式不利于列的全局转换,而是转换到特定类型

    感谢您的帮助