Сопоставление со словарем с помощью iBATIS
-
02-07-2019 - |
Вопрос
Учитывая простое утверждение, например:
<statement id="SelectProducts" resultMap="???">
SELECT * FROM Products
</statement>
Можно ли получить список объектов словаря, где ключами являются имена столбцов?то есть.
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.
Я хотел бы обобщить результат запроса для обработки любого количества имен столбцов/столбцов без сопоставления с конкретными свойствами какого-либо класса.
Я понимаю, что приведенный здесь пример не удастся, поскольку набор результатов может иметь повторяющиеся (или нулевые) имена столбцов.Я подумал о классе результатов, который содержит индексированный список пар ключ-значение.Ключевым моментом здесь является сохранение где-нибудь информации о столбце.
Решение
Вы можете сделать это, установив для атрибута класса значение HashTable в конфигурации resultMap.Более подробная информация доступна здесь.