我正在为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用于分配值的过程中的一个步骤?或者是否广泛使用可空类型标准实践呢?
答案 0 :(得分:0)
这不是Dapper的限制;这就是你的模型的设置方式。
char
类型不可为空。
将您的模型更改为char?
以使其可以为空。