Come ottenere il valore della colonna in modo dinamico utilizzando Dapper

dapper

Domanda

Usando Dapper, come posso ottenere il valore di una colonna all'interno di una tabella in modo dinamico?

Ciò che ho:

string tableName = "Table1";
int itemId = 1;
string columName = "MyBitColumn";

var query = string.Format("select {0} from {1} where {1}Id = @itemId", columnName, tableName);
var entity = conn.Query(query, new { itemId }).FirstOrDefault();

// I'd like something like this...
bool val = entity[columnName] as bool; // returns true or false, given that "MyBitColumn" is a bit in my sql db

Grazie!

Risposta accettata

È possibile eseguire il cast dell'entità su un IDictionary<string, object> e accedere per nome:

var entity = (IDictionary<string, object>) ... // your code
if((bool)entity[column name]) { ... }


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché