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
}
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