Domanda

Data una dichiarazione semplice, come ad esempio:

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

È possibile ottenere un elenco di oggetti del dizionario in cui le chiavi sono i nomi delle colonne? vale a dire.

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.

Vorrei generalizzare il risultato di una query per gestire un numero qualsiasi di nomi di colonne / colonne senza mappare proprietà specifiche di una classe.

Mi rendo conto che l'esempio qui fallirebbe poiché un set di risultati potrebbe avere nomi di colonna duplicati (o null). Ho pensato a una classe di risultati che contiene un elenco indicizzato di coppie chiave-valore. La cosa chiave qui è conservare le informazioni sulla colonna da qualche parte.

È stato utile?

Soluzione

Puoi farlo impostando l'attributo class su HashTable nella configurazione di resultMap. Maggiori dettagli disponibili qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top