我正在使用Dapper并执行以下查询,该查询已映射到type列表MyObject。默认映射器的问题是int我的表(INOUT)中有一个可为空的字段,其中包含整数值。一个可能的值是NULL,它将被映射为整数0。如何防止这种情况?我必须知道INOUT是NULL还是0。
public List<MyObject> GetSomething()
{
    using (IDbConnection db = GetOpenConnection())
    {
        return db.Query<MyObject>("Select * from tbl_foo").ToList<MyObject>();
    }
}
public class MyObject
{
    public int INOUT { get; set; }
}
Dapper的默认映射器支持DBNull开箱即用的映射值。那不是问题。问题在于您的MyObject.INOUT定义。
该int类型是不可为空的,这意味着它只能容纳整数值。要允许它保存null 或整数值,它需要是type Nullable<int>或更简单的int?。
要更正此问题,请更改MyObject为:
public class MyObject
{
    public int? INOUT { get; set; }
}
这将允许该INOUT字段存储一个null或整数值。
| 归档时间: | 
 | 
| 查看次数: | 268 次 | 
| 最近记录: |