Dapper可以在回报中处理空值吗?

时间:2018-05-09 17:44:50

标签: c# postgresql .net-core dapper

我正在为Query类调用Dapper扩展函数IDbConnection。问题是,它返回的某些值在数据库中是NULL。它一直在抱怨它们,所以我一直在将我的返回类的成员转换为可空类型。但我想我最终可能会为几乎每个成员做这件事,因为数据通常是不完整的。这是使用DataRow类的旧代码进行更改,并且能够将空值分配给我的返回类的string成员,而不会仅使用ToString

public class ProductInfo
{
    public Char Department { get; set; }
}

这有效:

ProductInfo myProduct = new ProductInfo{};
myProduct.Department = dataRow["department"].ToString();

dataRow["department"]显示为{}myProduct.Department显示为""

这给出了一个例外:

List<ProductInfo> myProduct = new List<ProductInfo>();
myProduct = dbConnection.Query<ProductInfo>(command, parameters).ToList();

错误:Error parsing column 1 (department=<null>) Details: System.ArgumentNullException: Value cannot be null

我是否错过了Dapper用于分配值的过程中的一个步骤?或者是否广泛使用可空类型标准实践呢?

1 个答案:

答案 0 :(得分:0)

这不是Dapper的限制;这就是你的模型的设置方式。

char类型不可为空。

将您的模型更改为char?以使其可以为空。