До сих пор я использовал Active records во всех приложениях, управляемых базой данных С#. Но теперь мое приложение требует, чтобы мой код сохранения был разделен на мои бизнес-объекты. Я прочитал много сообщений о шаблоне сопоставления данных Мартина Фаулера, но мои знания об этом шаблоне все еще очень ограничены.
Используйте следующий пример:
Если у меня есть 2 таблицы - Customer и CustomerParameters. Таблица CustomerParameters содержит значения по умолчанию для клиента для создания нового Клиента.
Затем мне нужно будет создать класс CustomersMapper для обработки всех постоянных клиентов. Класс My Customer и CustomersList затем будет сотрудничать с этим классом mapper, чтобы сохранить данные клиента.
У меня есть следующие вопросы:
-
Как перенести необработанные данные TO и FROM из моего класса Customer в mapper без нарушения определенных бизнес-правил? DTO-х?
-
Допустимо ли иметь метод SaveAll и LoadAll в моем классе Mapper для обновления и загрузки нескольких данных клиентов? Если это так, в случае SaveAll, как разработчик будет знать, когда обновлять или вставлять данные?
-
Будет ли отвечать за класс сопоставления клиента за получение значений по умолчанию из таблицы CustomerParameters, или будет лучше создать сопоставление CustomerParameters?
Инструмент отображения O/R на самом деле не существует. Я использую базу данных Transactional и требую, чтобы я написал свой собственный шаблон Mapper.
Будут оценены любые идеи и комментарии.