Ваш бизнес-уровень определенно не хочет знать о строках данных - попробуйте оставить определенные классы данных на уровне данных. Это уменьшает сцепление и освобождает вас от необходимости изменения уровня сохраняемости позднее без необходимости повторной архитектуры.
Чтобы решить вашу конкретную проблему, вы можете:
- Создание базовых объектов данных / сущностей на вашем уровне данных и передача их на ваш бизнес-уровень для потребления.
- Или, как вы, похоже, делаете, создавайте DTO (объекты передачи данных), которые существуют исключительно как средство передачи данных из уровня данных в более богатую реализацию вашего бизнес-объекта на более высоком уровне. Вы можете сделать это как часть шаблона хранилища в модели расширенного домена.
Другая вещь, о которой вы можете подумать, это уровни v уровней - это имеет значение, как вы думаете об этих вещах. Уровни, как правило, являются физическими, иными словами, они определяют границы между процессами. Слои, как правило, логичны, они разделяют функциональность программы на слабо связанные блоки. В этом случае вы стремитесь к слоям.