Dapper-dot-net "pas de nom de colonne"

dapper

Question

J'ai un jeu de résultats qui pourrait ressembler à ceci:

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

J'ai 2 problèmes:

Premièrement: comment utiliser dapper avec une colonne sans nom?

Deuxièmement: je veux avoir une relation parent-enfant telle que j'obtiens 3 objets chacun avec une liste d'autres identifiants, par exemple:

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

Réponse acceptée

Eh bien, les colonnes non nommées ne sont pas prises en charge par dapper. Je n'ai jamais vraiment vu une raison pour eux.

Je suppose que nous pourrions construire un soutien pour:

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

Le problème est que cela introduit une méthode de requête très fragile que je déteste fortement, passer une directive à Query est tout aussi maladroite.

Cependant, si vous êtes heureux de changer la façon dont vous obtenez les résultats, vous pouvez contourner ce problème.

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

Utilisez ensuite la technique ici pour mapper plusieurs fois: Multi-Mapper pour créer une hiérarchie d'objets




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi