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