Трехслойная архитектура для ADO.NET, проблемы при возвращении DBNull и мелочи

Здравствуйте. Прочитав эту статью про трехслойную архитектуру доступа к данным, решил уже наконец научиться писать всё нормально и по правилам. Всё пока хорошо но есть пара вопросов:
1. Если на этом этапе:

UserVO userVO = new UserVO();
            DataTable dataTable = new DataTable();

            dataTable = _userDAO.searchByName(name);
            foreach (DataRow dr in dataTable.Rows)
            {
                userVO.idUser = Int32.Parse(dr["t01_id"].ToString());
                userVO.firstname = dr["t01_firstname"].ToString();
                userVO.lastname = dr["t01_lastname"].ToString();
                userVO.email = dr["t01_email"].ToString();
            }
            return userVO;

Если значение с базы приходит DBNull то присваивать к объекту модели данные которые не могут принимать такие значения (Например: int , DateTime не могут быть null), то какие проверки лучше сделать и что возвращать в объект модели ?

2. Если база возвращает несколько строк (например в контрол DataGridView или просто список) то я добавляю их в List< T >, где T - класс модели (Model Layer или как в примере выще UserVO). Правильно ли я делаю ?
  • Вопрос задан
  • 3323 просмотра
Пригласить эксперта
Ответы на вопрос 1
1. Использовать в модели Nullable.
2. Да.

Но, ИМХО, я бы присмотрелся к Entity Framework, NHibernate или другим ORM, так как ADO, хоть и работает быстро, но сейчас годится только для проектов на стадии поддержки. Если писать все заново (как я понимаю у вас), то лучше сделать шаг в современность. Из плюсов: значительно меньше нужно писать руками кода по работе с БД, LINQ.
EntityFramework
NHibernate
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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