Мы работаем над информационной системой больницы, которая написана на C # и использует NHibernate для сопоставления объектов с базой данных. Шаблон MVC используется для отделения бизнес-логики от пользовательского интерфейса. Вот проблема,
Как получить переменный размер различного набора строк для пользовательского интерфейса?
Например, у объекта Contact
есть свойство с именем City
, в котором указывается, какой город живет в контакте. В стране, для которой написано приложение, более 80 городов. Как вы могли бы написать эти города в поле со списком? (или сетка данных, таблицы, ...) В этом примере фиксированный номер города. Нет необходимости добавлять еще один город в течение длительного времени. (Если список городов изменяется, перекомпиляция не является проблемой)
Например, у объекта Contact
есть другое свойство с именем FooBar
, которое будет содержать 1000 различных строковых значений, и эти значения будут выбраны в поле со списком для этого свойства. И этот набор может быть увеличен, если пользователи хотят. Как загрузить поле со списком с этими значениями? (Если список строк статически записан в объект комбинированного блока, перекомпиляция является проблемой)
У меня есть разные решения, как показано ниже
- Все строковые значения статически записываются в поле со списком в коде или конструкторе
- Получить значения из файла ресурсов
- Записать эти значения в файл XML (на самом деле то же, что и выше, но не нужно перекомпилировать)
- Создание объекта
City
и получение значений в списке из таблицы CITY
с помощью NHibernate
- Создайте класс с именем
StringHolder
, который имеет свойства Type
и Value
. Все строковые значения (включая City
и FooBar
) будут записаны только в одну таблицу с именем STRINGHOLDER
. И получите эти значения с помощью ключа, например "CITY" или "FOOBAR", с помощью NHibernate.
Какой бы вы выбрали? Или вы могли бы предложить мне еще один?
Спасибо всем