Фон
Приложение WinForms, использующее NHibernate. Приложение выполнено в стиле MDI, и каждая дочерняя форма MDI открывает новый сеанс NHibernate при загрузке, который остается открытым в течение всего срока службы формы.
Вопрос
Мое приложение, по сути, представляет собой систему управления заказами или закупками. Одна конкретная форма использует много списков поиска. Как список продуктов, список поставщиков, список местоположений, список UnitsOfMeasurement, список PriceQuotes и т. Д.
Множество списков, которые загружаются при создании формы.
Проблема: Мне нужны списки поиска, но мне нужно, чтобы форма загружалась немного быстрее. Форма занимает слишком много времени, чтобы выполнить все поиски. Как повысить производительность и сохранить списки поиска?
Мои мысли
Можно ли один раз загрузить списки поиска и удерживать их в течение всего срока службы приложения, а также периодически проверять, не устарели ли списки?
Могу ли я загрузить только текстовое описание для списков, и вместо хранения группы IList, IList и т. Д. Я могу сохранить группу IList, а затем при сохранении выполнить операции Gets против NHibernate для получить реальный объект.
Есть какой-то другой подход, о котором я просто не подумал?