Весь смысл разделения на слой differnt - это привносить некоторую слабосвязанность и абстракцию, чтобы слой пользовательского интерфейса не знал, какую технологию доступа к базе данных вы используете на уровне доступа к данным. Поэтому я думаю, что вы не должны делиться таблицей UserMaster непосредственно с уровнем пользовательского интерфейса. Вы лучше читаете данные из источника данных, а затем заполняете свои классы POCO и возвращаете их на свой уровень пользовательского интерфейса.
Таким образом, я бы создал метод, который возвращает список пользователей (объект вашего класса User Entity) для этого. Поэтому, если есть изменение (вы хотите отобразить поле DisplayName из FirstName в другое поле), вы вносите изменения в одно место (ваш уровень данных), и вы будете иметь это изменение во всех местах, где вы вызываете этот метод.
Да, вы можете, но я бы предложил создать компонент для размещения бизнес-логики. – adatapost