¿Puede Dapper manejar valores nulos en una devolución?

.net-core c# dapper postgresql

Pregunta

IDbConnection la función ampliada Query Dapper para la clase IDbConnection . El problema es que algunos de los valores que devuelve son NULL en la base de datos. Sigue quejándose de ellos, así que he estado convirtiendo a los miembros de mi clase de devolución en tipos anulables. Pero estoy pensando que puedo terminar haciendo esto para casi todos los miembros, porque los datos a menudo son incompletos. Esto se está cambiando desde un código anterior que usa la clase DataRow y puede asignarle valores vacíos a miembros de string de mi clase de devolución sin ningún problema al usar solo ToString .

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

Esto funciona:

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

dataRow["department"] muestra como {} y myProduct.Department muestra como "" .

Esto da una excepción:

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

Con el error: Error parsing column 1 (department=<null>) Details: System.ArgumentNullException: Value cannot be null

¿Me estoy perdiendo un paso en el proceso que Dapper usa para asignar valores? ¿O es extensivo el uso de la práctica estándar de tipos que aceptan nulos?

Respuesta popular

Esto no es una limitación con Dapper; es cómo está configurado su modelo.

Un tipo de char no puede contener nulos.

¿Cambiar tu modelo a char? para que sea nulo.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué