Cómo obtener el valor de la columna de forma dinámica con Dapper

dapper

Pregunta

Usando Dapper, ¿cómo puedo obtener el valor de una columna dentro de una tabla de forma dinámica?

Lo que tengo:

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

¡Gracias!

Respuesta aceptada

Puede convertir la entidad a IDictionary<string, object> y acceder por nombre:

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


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué