Во-первых, обратите внимание, что это проектное руководство , а не ошибка компилятора.Один из подходящих подходов здесь будет следующим: игнорировать его.
Другой может быть - инкапсулировать его;т.е. вернуть List<QueryRow>
, где QueryRow
- это поверхностная оболочка над IDictionary<string,object>
с индексатором, то есть
public class QueryRow {
private readonly IDictionary<string,object> values;
internal QueryRow(IDictionary<string,object> values) {
this.values = values;
}
public object this[string key] {
get { return values[key]; }
set { values[key] = value; }
}
}
тогда, так как к этому обращаются через dapper, заполните через:
var data = connection.Query(....)
.Select(x => new QueryRow((IDictionary<string,object>)x).ToList()
Другой вариант (который мне не очень нравится) может быть следующим: return DataTable
.
уходит, чтобы вымыть руки после ввода DataTable
...Г!теперь дважды