Can Dapper kann dynamische Spaltenüberschriften verarbeiten

dapper

Frage

Ich habe eine gespeicherte Prozedur, die immer eine Liste von Zeichenfolgen zurückgibt. Basierend auf den an die gespeicherte Prozedur übergebenen Parametern ändert sich jedoch die Spaltenüberschrift für die Liste der Zeichenfolgen. Kann Dapper damit umgehen? Wenn ja, wie sollte damit umgegangen werden?

                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;

Beliebte Antwort

Sie können den Wert anhand eines dynamischen Spaltennamens oder -index ermitteln:

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


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum