Dapper: lit plusieurs résultats avec un tableau de type non générique

dapper

Question

J'ai une requête en 3 parties que je lis en utilisant QueryMultiple . Mon problème est sur le premier Read<T> je dois diviser la requête en 12 classes différentes, que Dapper ne prend pas en charge de ce que j'ai pu voir. Avant d'utiliser QueryMultiple , ma requête n'était qu'une partie et j'utilisais la méthode de cet exemple Utilisation de Dapper pour mapper plus de 5 types afin d'obtenir 12 classes différentes. Ma question est la suivante: comment puis-je diviser le premier Read<T> en douze classes, puis continuer avec le GridReader ? Veuillez noter que je ne peux pas créer une grande requête.

public static IEnumerable<TReturn> Query<TReturn>(this IDbConnection cnn, string sql, Type[] types, Func<object[], TReturn> map, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, string splitOn = "Id", int? commandTimeout = null, CommandType? commandType = null);

MISE À JOUR J'ai testé cette méthode que j'ai ajoutée au fichier Dapper et cela a fonctionné, mais je ne faisais que référencer la DLL et non le fichier réel dans mon application. J'espérais qu'il y avait un support intégré pour ce que je voulais et je l'ai juste manqué quelque part dans le code. Merci pour toute aide.

  public IEnumerable<TReturn> Read<TReturn>(Type[] types, Func<object[], TReturn> func, string splitOn = "id", bool buffered = true)
  {
    var identity = this.identity.ForGrid(typeof(TReturn), types, gridIndex);

    try
    {
      foreach (var r in SqlMapper.MultiMapImpl<TReturn>(null, default(CommandDefinition), types, func, splitOn, reader, identity, false))
      {
        yield return r;
      }
    }
    finally
    {
      NextResult();
    }

  }

Réponse populaire

Alors que j'allais ajouter une demande de tirage, j'ai remarqué que quelqu'un était en avance sur moi. Semble que cette fonctionnalité n'est pas incluse dans Dapper en ce moment.

https://github.com/StackExchange/dapper-dot-net/pull/308



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