Как я преобразовываю таблицу данных в ПОСТЕПЕННО объект у Asp. Сетевой MVC?

Если проблема существует только для недавно скопированных шрифтов, то это - проблема разрешения. Удостоверьтесь, что у текущего пользователя есть разрешение "считать" те шрифты.

6
задан David Basarab 30 August 2009 в 14:47
поделиться

3 ответа

Передайте каждый DataRow в конструктор класса (или используйте методы получения / установки) и преобразуйте каждый столбец в соответствующее свойство. Будьте осторожны со столбцами, допускающими значение NULL, чтобы правильно их извлечь.

  public class POCO
  {
       public int ID { get; set; }
       public string Name { get; set; }
       public DateTime? Modified { get; set; }
       ...

       public POCO() { }

       public POCO( DataRow row )
       {
            this.ID = (int)row["id"];
            this.Name = (string)row["name"];
            if (!(row["modified"] is DBNull))
            {
                 this.Modified = (DateTime)row["modified"];
            }
            ...
       }
  }
10
ответ дан 8 December 2019 в 12:21
поделиться

Таблица данных обычно содержит много строк - хотите ли вы преобразовать каждую строку в экземпляр объекта?

В этом случае вы можете, например, добавить к своему объекту POCO конструктор, который будет принимать DataRow в качестве параметра, а затем извлекать биты и части из этого DataRow :

public YourPOCO(DataRow row)
{
   this.Field1 = row["Field1"].ToString();
   ...
   this.FieldN = Convert.ToInt32(row["FieldN"]);
}

и так далее, а затем вызовите этот конструктор для каждой строки в коллекции DataTable.Rows :

List<YourPOCO> list = new List<YourPOCO>();

foreach(DataRow row in YourDataTable.Rows)
{
   list.Add(new YourPOCO(row));
}

И затем вы можете создать представление ASP.NET MVC или частичное представление на основе этого "YourPOCO "введите и используйте шаблон" Список ", чтобы создать список" YourPOCO "

5
ответ дан 8 December 2019 в 12:21
поделиться

Я видел ваш другой вопрос об использовании таблицы данных на уровне доступа к данным. Если вы в какой-то момент вернете POCO, неплохо было бы позволить вашему DAL уже возвращать POCO.

Вы должны использовать SqlDataReader для заполнения POCO. Это более легкий вес. Иногда проще использовать DataSet и DataTable для списков записей, но если вы все равно преобразуете строки в строго типизированный POCOS, я почти уверен, что это правильный путь.

1
ответ дан 8 December 2019 в 12:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: