Pregunta

Tengo un conjunto de resultados que podría verse así:

ID    (no column name)  anotherID
----  ----------------  ----------
1        super            3
1        super            4
3        duper            6
4        really           7
4        really           8

Tengo 2 problemas:

Primero: ¿Cómo uso Dapper con una columna sin nombre?

Segundo: Quiero tener una relación de hijo padre de tal manera que obtenga 3 objetos cada uno con una lista de otroid, por ejemplo, por ejemplo:

public class MyObject
{
   public int ID
   public string Name
   public int[] Children
}
¿Fue útil?

Solución

Bueno, las columnas sin nombrar no son compatibles con Dapper. Realmente nunca vi una razón para ellos.

Supongo que podríamos generar apoyo para:

class Foo { [ColumnNumber(1)] public string Name {get;set;} }

El problema es que introduce un método muy frágil de consulta que me gusta mucho, transmitiendo una directiva a Query es igual de torpe.

Sin embargo, si está contento de cambiar la forma en que obtiene los resultados, podría trabajar en torno a esto.

var grid = QueryMultiple(@"set nocount on 
declare @t table(Id int, Name nvarchar(max), AnotherId int)

insert @t
exec proc

set nocount off 
select Id, Name from @t
select Id, AnotherId from @t
");

Luego use la técnica aquí en mapa múltiple: Multi-mapper para crear jerarquía de objetos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top