Есть ли простой способ заполнить модель списка из datareader? - PullRequest
1 голос
/ 23 мая 2019

Я получаю данные от 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 ]

1 голос
/ 23 мая 2019

Вы можете использовать стороннюю библиотеку, такую ​​как 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" });
0 голосов
/ 23 мая 2019

Если вы хотите преобразовать результат вашего OracleDataReader в произвольный JSON, вы можете сначала сериализовать его в словарь (строку, объект), а затем преобразовать словарь в json.

Здесь - это ответ на похожую тему, в котором содержится некоторый код для этого.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...