Я работаю над приложением MVC в течение последних нескольких дней. В этом я использую пару dropdownlists и хотел, чтобы то, что я сделал, является хорошей практикой. У меня около 5-6 выпадающих меню, которые вытаскиваются из базы данных. Там выпадающие списки имеют поле идентификатора и описания. Я могу получить выпадающие меню с проблемой. Однако, когда я перечисляю главную таблицу, у меня возникает проблема с производительностью.КАК ПОЯВИТЬ НА NHibernate с ASP.NET MVC 2
Все выпадающие списки сохраняются как целочисленные в базе данных, поэтому у меня есть поле также как в BaseModel (класс, который отображается на HBM). Когда я перечисляю все записи из базы данных, я предсказую, что получаю целое число в записи. Пока у меня нет проблем в производительности.
Я хотел показать описание для выбранного элемента, чтобы создать класс модели для выпадающих списков и иметь метод в модели, который будет разговаривать с базой данных и получать описание на основе выбора. Проблема в том, что это замедляет загрузку страницы. Я хотел знать, нужно ли мне сделать изменение дизайна, чтобы оно было загружено быстрее. Ниже приведен код, который я
MasterList1 Table (Государство и округа являются целыми числами в этой таблице) раскрытом состоянии (Master стол, имеющий все состояния с ID) County Dropdown (Мастер таблицу, имеющую все уезды с ID)
BaseModel Классы для NHibernate
MasterList1 государственного округа
Модель класса
MasterList1Model StateModel CountyModel
Repository Класс MasterList1Repo StateRepo CountyRepo
Посмотреть MasterList1
В представлении я звоню строку proprty в классе BaseModel. В свойстве я делаю вызов класса Model, который, в свою очередь, отправляет вызов Repo для получения строки. Вот метод в классе Repo.
public ApplicationTypeMaster GetByID(int ID)
{
using (ISession session = NHibernateHelper.OpenSession())
{
return session.Get<ApplicationTypeMaster>(ID);
}
}
public string GetApplicationTypeByID(int ID)
{
return GetByID(ID).ApplicationTypeDescription.ToString();
}
Я не уверен, как улучшить это. Какие-либо предложения ?
Не могли бы вы добавить свой код? –
View имеет model => model.ApplicationTypeDescription rendered. Это свойство вызывает вызов класса Model, который запрашивает коллекцию, которую я загружаю при загрузке страницы. Это то, что вы искали @jeroenk? – vikramjb
Это действительно сложно сказать, ваш пример недостаточно ясен. Если бы вы могли создать образец приложения и поделиться им с sharebox, который будет оценен. Одна рекомендация, которую я могу сделать, - это изучить кэширование 2-го уровня NHibernates, чтобы уменьшить количество запросов к базе данных. Вы также можете подумать о создании своего собственного статического кеша в памяти этих объектов, если они не меняются со временем. Может предоставить вам несколько конкретных примеров, если вы предоставите более подробное описание для нас. – ctrlplusb