我正在使用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; }
}
Run Code Online (Sandbox Code Playgroud)
Dapper的默认映射器支持DBNull开箱即用的映射值。那不是问题。问题在于您的MyObject.INOUT定义。
该int类型是不可为空的,这意味着它只能容纳整数值。要允许它保存null 或整数值,它需要是type Nullable<int>或更简单的int?。
要更正此问题,请更改MyObject为:
public class MyObject
{
public int? INOUT { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这将允许该INOUT字段存储一个null或整数值。
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |