Я предлагаю вам взглянуть на концепции объектов View ... или Data Transfer Objects (DTO). Вы можете рассмотреть возможность использования такого инструмента, как AutoMapper или аналогичного, который создаст видовой объект предметной области из ваших сущностей. Как правило, у вас могут быть экраны, для которых требуется наличие объекта для выполнения своей работы. Но чаще всего вам нужно будет пройти несколько разных объектов. В этом случае вам лучше создать один DTO, содержащий все эти объекты. Делая это, вы добавляете слой разделения между уровнем представления и уровнем бизнеса. Часто ваши сущности имеют больше возможностей, чем вы, возможно, захотите представить на уровне представления. И наоборот. Часто вам может потребоваться отправить некоторые сообщения пользовательского интерфейса на уровень представления на основе некоторой проверки, отмеченной на вашем бизнес-уровне. Вместо того, чтобы сделать ваш пользовательский интерфейс более сложным, чем нужно (передавая полные сущности), вы можете передать только то, что нужно пользовательскому интерфейсу в форме DTO. Кроме того, вашим бизнес-объектам никогда не нужно заботиться о чем-либо специфичном для уровня представления. Я полагаю, что вы не привязываете данные непосредственно ко всему, что относится к уровню доступа к данным. Технически ваш уровень представления должен знать как можно меньше о вашем уровне бизнеса. В случае MVP или MVC этого очень легко достичь, отсоединив передний конец и задний конец с помощью этого дополнительного разделения!