Classe d'utilitaire pour Dapper ORM similaire au modèle de référentiel

c# dapper

Question

J'ai créé ci-dessous des méthodes de référentiel pour Dapper ORM.

public SqlMapper.GridReader QueryMultiple(string query, object cmdParams = null, CommandType cmdType = CommandType.Text)
{
     SqlMapper.GridReader objMulti;
     var conn = GetSqlConnection();            
     objMulti = conn.QueryMultiple(query, cmdParams, commandTimeout: 0, commandType: cmdType);                                            
     return objMulti;
}

public IEnumerable<T> GetAll<T>(string query, object cmdParams = null, CommandType cmdType = CommandType.Text) where T : class
{
      IEnumerable<T> objList;
      using (var conn = GetSqlConnection())
      {
           objList = conn.Query<T>(query, param: cmdParams, commandTimeout:0, commandType: cmdType);
           conn.Close();
      }
      return objList;
}

L'utilisation de la méthode de requête semble correcte et la connexion est fermée dès que l'opération est terminée.

new DapperRepository().Query("zyx").ToList();

Mais querymultiple renvoie le lecteur de grille. Dapper dispose donc à la fois de la connexion et du lecteur une fois les opérations de lecture terminées. S'il vous plaît aviser de mon approche.

using (SqlMapper.GridReader multiResult = new DapperRepository().QueryMultiple(sql, new { id = id }))
{
   var dbPRTGroup = multiResult.Read<Customer>().Single();
    XXXXX
}

Réponse acceptée

Oui.

Selon votre dernier bloc de code, les opérations de connexion et de lecture sont à la fin. Ceci est également assurée par l' utilisation de l' using mot - clé dans .NET Framework.




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