Dapper peut-il gérer l'en-tête de colonne dynamique

dapper

Question

J'ai une procédure stockée qui retourne toujours une liste de chaînes. Toutefois, en fonction des paramètres transmis à la procédure stockée, l'en-tête de colonne de la liste de chaînes changera. Dapper est-il capable de gérer cela? Si oui, comment devrait-il être manipulé?

                conn.Open();
                var p = new DynamicParameters();
                p.Add("Search_Function_CD", searchFunction, DbType.String, ParameterDirection.Input);
                p.Add("Search_Value", searchValue, DbType.String, direction: ParameterDirection.Input);
                p.Add("o_resultset", dbType: DbType.Object, direction: ParameterDirection.Output);
                var Results = (IDictionary<string, object>)conn.Query(sql: CommonConstants.ProcedureConstants.PKG_GET_SEARCH_RESULTS, param: p, commandType: CommandType.StoredProcedure);
                foreach (object o in Results)
                {
                    string element = Results.Values.ElementAt(1) as string;
                    searchResults.Add(element);
                }
                conn.Close();
                return searchResults;

Réponse populaire

Vous pouvez obtenir la valeur par un nom ou un index de colonne dynamique:

var row = (IDictionary<string, object>)con.Query("select * from Products").First();

string name = row["ProductName"]; // column name 'ProductName'
// or:
string name = row.Values.ElementAt(1) as string; // column index 1



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