Pergunta

Dada uma declaração simples, tais como:

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

É possível obter uma lista de objetos do dicionário onde as chaves são os nomes das colunas? ie.

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.

Eu gostaria de generalizar o resultado de uma consulta para lidar com qualquer número de colunas nomes / coluna sem mapeamento para propriedades específicas em alguma classe.

Eu percebo o exemplo aqui seria um fracasso uma vez que um conjunto de resultados pode ter duplicado (ou nulos) os nomes das colunas. Já pensou em uma classe resultado que mantém uma lista indexada de pares chave-valor. O importante aqui é manter a algum lugar informação da coluna.

Foi útil?

Solução

Você pode fazer isso definindo o atributo de classe para HashTable na configuração resultMap. Mais detalhes disponíveis aqui .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top