Dapper-dot-net "no nome colonna"

dapper

Domanda

Ho un set di risultati che potrebbe assomigliare a questo:

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

Ho 2 numeri:

Primo: come posso usare dapper con una colonna senza nome?

Secondo: voglio avere una relazione genitore figlio in modo tale da ottenere 3 oggetti ciascuno con un elenco di anotherID, ad esempio:

public class MyObject
{
   public int ID
   public string Name
   public int[] Children
}

Risposta accettata

Bene, le colonne non nominate non sono supportate da dapper. Non ho mai visto davvero una ragione per loro.

Immagino che potremmo creare supporto per:

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

Il guaio è che introduce un metodo di query molto fragile che non mi piace, passare una direttiva a Query è altrettanto clandestino.

Tuttavia, se sei felice di cambiare il modo in cui prendi i risultati, puoi ovviare a questo problema.

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
");

Quindi utilizzare qui la tecnica per la multi mappa: Multi-Mapper per creare la gerarchia degli oggetti



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché