Я хотел бы использовать Dapper, чтобы составить список классов без необходимости определять все имена классов. Я знаю, что это немного лениво, но это уже определено в Visual Studio.
Итак, в Visual Studio я создал DataSet и добавил таблицу. Код, сгенерированный VS, включает следующее:
public partial class MyTableRow : global::System.Data.DataRow {
private MyTableDataTable tableMyTable;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
internal MyTableRow(global::System.Data.DataRowBuilder rb) :
base(rb) {
this.tableMyTable = ((MyTableDataTable)(this.Table));
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
public string rectype {
get {
return ((string)(this[this.tableMyTable.rectypeColumn]));
}
set {
this[this.tableMyTable.rectypeColumn] = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
public string acctdet {
get {
return ((string)(this[this.tableMyTable.acctdetColumn]));
}
set {
this[this.tableMyTable.acctdetColumn] = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
public string acctdet2 {
get {
return ((string)(this[this.tableMyTable.acctdet2Column]));
}
set {
this[this.tableMyTable.acctdet2Column] = value;
}
}
etc, etc
Итак, в моем методе я просто хотел бы использовать этот код таким образом:
// no errors on this
public List<MyDataSet.MyTableRow > GridList = new List<MyDataSet.MyTableRow >();
Тогда мой метод, который использует Dapper для заполнения списка:
void FillDataDapper()
{
IDbConnection cx = new SqlConnection(myConnectionString);
string query = "SELECT * FROM myTable" ;
GridList = cx.Query<MyDataSet.MyTableRow >(query).ToList();
}
Компилируется, но я получаю следующую ошибку во время выполнения:
Для материализации MyDataSet + MyTableRow требуется конструктор по умолчанию без параметров или одна совпадающая подпись (список всех моих полей)
Похоже, что это был бы невероятно удобный ярлык, если бы кто-то мог немного указать путь. Буду очень признателен за любую помощь.
Спасибо:)