以下是我得到结果的方法(例子):
dynamic var data: [T] = []
然后我有一个POCO类,它匹配查询的字段(逐行)。话虽这么说,我创建了一个List:
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from table_name t";
//retrieve the result
OracleDataReader reader = cmd.ExecuteReader();
然后我遍历List<ReportsModel> reports= new List<ReportsModel>();
:
reader
问题是:我的POCO类有大约300个字段(查询返回相同的数量)。如何将结果集(while (reader.Read())
{
//single report that I will pass to the colletion of reports
ReportsModel report= new ReportsModel();
report.Id_product = reader["ID_PRODUCT"] == DBNull.Value ? 0 : Convert.ToInt32(reader["ID_PRODUCT"]);
//passing report to reports
reports.Add(report );
}
)映射到OracleDataReader reader
,而无需逐行(List<ReportsModel>
)?我知道可能有一种方法可以使用像lambda(箭头函数)以及Linq或其他任何东西来解决它。
答案 0 :(得分:1)
我采用@mjwills建议使用Dapper并解决了我的问题,这是我的代码:
string sql = "select * from table t ";
//conn changed to IDbConnection, so I could use Dapper
var reports= conn.Query<ReportsModel>(sql).ToList();
就是这样,不需要编写代码来迭代OracleDataReader或其他任何东西! Dapper令人惊讶地处理它\ o
有用: Dapper Example