有什么简单的方法可以从 DataReader 填充列表模型吗?
Is there any simple way to populate list model from datareader?
我正在通过 OracleDataReader 从 table 获取数据。我有这个 table 的模型。
员工模型
public class Employee
{
public int ID { get; set; }
public int SIRKETID { get; set; }
public string NAME{ get; set; }
public string SURNAME{ get; set; }
public string DEPARTMENT{ get; set; }
public string STATUS{ get; set; }
}
控制器
public JsonResult getEmployee()
{
....
string sql = @"select * from Employee";
OracleCommand command = new OracleCommand(sql, connection);
OracleDataReader reader = command.ExecuteReader();
while (reader.Read())
{
var employee = new Employee();
Employee.ID = Convert.ToInt32(reader["ID"]);
Employee.SIRKETID = Convert.ToInt32(reader["SIRKETID "]);
Employee.NAME = reader["NAME"].ToString();
Employee.SURNAME = reader["SURNAME"].ToString();
Employee.DEPARTMENT = reader["DEPARTMENT"].ToString();
Employee.STATUS = reader["STATUS"].ToString();
model.Add(Employee);
}
....
return Json(new { data = model});
}
这很好用,但我不想一一映射列。我有 100 列。而且我不知道某些 table 中有多少列
有什么简单的方法可以return建模为json
您可以使用像 Dapper 这样的第三方库,这是一个简单的 .Net 对象映射器。
您可以在下面查看基本用法示例:
public class Dog
{
public string Name { get; set; }
public float? Weight { get; set; }
}
var dog = connection.Query<Dog>("SOME QUERY", new { Name = "DOGNAME" });
如果你想把你的OracleDataReader
的结果转成任意的JSON,你可以先序列化成一个(string, object)的字典,然后把字典转成一个json.
Here 是一个类似主题的答案,它提供了一些代码。
希望对您有所帮助。
我正在通过 OracleDataReader 从 table 获取数据。我有这个 table 的模型。
员工模型
public class Employee
{
public int ID { get; set; }
public int SIRKETID { get; set; }
public string NAME{ get; set; }
public string SURNAME{ get; set; }
public string DEPARTMENT{ get; set; }
public string STATUS{ get; set; }
}
控制器
public JsonResult getEmployee()
{
....
string sql = @"select * from Employee";
OracleCommand command = new OracleCommand(sql, connection);
OracleDataReader reader = command.ExecuteReader();
while (reader.Read())
{
var employee = new Employee();
Employee.ID = Convert.ToInt32(reader["ID"]);
Employee.SIRKETID = Convert.ToInt32(reader["SIRKETID "]);
Employee.NAME = reader["NAME"].ToString();
Employee.SURNAME = reader["SURNAME"].ToString();
Employee.DEPARTMENT = reader["DEPARTMENT"].ToString();
Employee.STATUS = reader["STATUS"].ToString();
model.Add(Employee);
}
....
return Json(new { data = model});
}
这很好用,但我不想一一映射列。我有 100 列。而且我不知道某些 table 中有多少列
有什么简单的方法可以return建模为json
您可以使用像 Dapper 这样的第三方库,这是一个简单的 .Net 对象映射器。
您可以在下面查看基本用法示例:
public class Dog
{
public string Name { get; set; }
public float? Weight { get; set; }
}
var dog = connection.Query<Dog>("SOME QUERY", new { Name = "DOGNAME" });
如果你想把你的OracleDataReader
的结果转成任意的JSON,你可以先序列化成一个(string, object)的字典,然后把字典转成一个json.
Here 是一个类似主题的答案,它提供了一些代码。
希望对您有所帮助。