Помещение логики в класс сущности, который расширяет сущность уровня данных
У меня есть вопрос, касающийся многоуровневой архитектуры. Мы разрабатываем многоуровневую архитектуру, и мы решили создать слой данных, бизнес-уровень и фронт с моделями представления. Мой вопрос касается бизнес-уровня и где поставить логику. Уровень данных (уровень веб-сервиса) будет получать все данные и преобразовывать данные в наши собственные объекты, скажем, класс с именем DataLayerEntityClassA. На бизнес-уровне у нас есть класс BusinessLayerClassA, который принимает эти преобразованные данные (DataLayerEntityClassA) и выполняет некоторую логику, скажем, сортировку. Когда мы закончим с логикой, мы возвращаем BusinessLayerEntityClassA, который наследует класс DataLayerEntityClassA. Класс BusinessLayerEntityClassA находится в слое BL и содержит некоторую простую логику для поиска, запрашивающего объект DataLayerEntityClassA. Это хорошая практика или эта простая логика должна быть в классе BusinessLayerClassA? Есть ли подводные камни в этом пути?
Мы используем C# .net 3.5, если это имеет значение.