Mapeo complejo en dapper sin subconsultas

c# dapper sql

Pregunta

Si tengo un objeto como

class Thing
{
 public string A { get; set; }
 public string B { get; set; }
 public string C { get; set; }
 public string D { get; set; }
}

Dapper funciona muy bien con:

return conn.QuerySingle<Thing>(
    @"SELECT A, B, C, D
      FROM [Thing] WHERE Id = @id", new { id });

Pero, ¿y si mi estructura de clase es

class Thing
{
 public string A { get; set; }
 public string B { get; set; }
 public IEnumerable<Stuff> { get; set; }
}

class Stuff
{
 public string C { get; set; }
 public string D { get; set; }
}

¿Cómo puedo obtener Dapper para mapear a esa estructura, suponiendo que el Enumerable siempre contendrá 1 elemento en el enumerable así que en realidad estoy representando los mismos datos de una manera diferente.

Los tutoriales de Dapper que he visto son bastante complejos y contienen subconsultas, pero idealmente mi consulta no debería cambiar porque ya devuelve todos los datos que deberían asignarse a la nueva estructura.

¿Algunas ideas?

Respuesta popular

Tienes que crear tu propio Custom Type Mapper. He escrito un artículo y algunas muestras aquí:

https://medium.com/dapper-net/custom-type-handling-4b447b97c620



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é