有什么简单的方法可以从datareader填充列表模型吗?

时间:2019-05-23 07:35:15

标签: c# oracle model automapper datareader

我正在通过OracleDataReader从表中获取数据。我有这个桌子的模型。

员工模式

 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列。而且我不知道某些表中有多少列

有没有简单的方法可以将模型返回为json

2 个答案:

答案 0 :(得分:1)

您可以使用第三方库,例如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" });

答案 1 :(得分:0)

如果要将OracleDataReader的结果转换为任意JSON,可以首先将其序列化为(字符串,对象)的字典,然后将字典转换为JSON。

Here是对类似主题的回答,其中提供了一些相关代码。

希望有帮助。