Pregunta

Dada una declaración simple, como por ejemplo:

<statement id="SelectProducts" resultMap="???">
  SELECT * FROM Products
</statement>

¿Es posible obtener una lista de objetos del diccionario donde las claves son los nombres de las columnas?es decir.

var list = Mapper.QueryForList<IDictionary<string,string>>("SelectProducts", null);

IDictionary<string, string> dict = list[0];
// dict["id"] == "1"
// dict["name"] == "Some Product Name"
// dict["price"] == "$9.99"
// etc.

Me gustaría generalizar el resultado de una consulta para manejar cualquier número de columnas/nombres de columnas sin asignar propiedades específicas en alguna clase.

Me doy cuenta de que el ejemplo aquí fallaría ya que un conjunto de resultados puede tener nombres de columnas duplicados (o nulos).Pensé en una clase de resultados que contenga una lista indexada de pares clave-valor.La clave aquí es conservar la información de la columna en algún lugar.

¿Fue útil?

Solución

Puede hacer esto configurando el atributo de clase en HashTable en la configuración de resultMap.Más detalles disponibles aquí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top