Я использую LINQ to SQL для слоя DataAccess.
У меня есть бизнес-объекты, подобные тем, что находятся на уровне доступа к данным.
Я получил от провайдера данных сообщение № 23. При создании экземпляра сообщения в конструкторе сообщений он получает MessageType и создает новый экземпляр класса MessageType и заполняет информацию MessageType из базы данных.
Таким образом, Я хочу, чтобы это получило Имя MessageType Сообщения.
user.Messages[23].MessageType.Name
Я также хочу, чтобы администратор установил тип сообщения
user.Messages[23].MessageType = MessageTypes.LoadType(3);
но я не хочу, чтобы пользователь публично устанавливал MessageType.Name.
Но когда я создаю новый экземпляр MessageType, модификатор доступа для свойства Name становится открытым, потому что я хочу установить его из внешнего класса (моего уровня доступа к данным).
Я мог бы поменять это свойство на внутреннее, чтобы мой класс мог обращаться к нему как к общедоступной переменной и не разрешать другому моему приложению доступ для его изменения.
Это все еще не правильно, так как похоже на публичную собственность.
Являются ли модификаторы публичного доступа в этой ситуации плохими?
Любые советы или предложения будут оценены.
Спасибо.