asp.net-mvc – 如何使用ASP.NET MVC 2在NHibernate上实现
在过去的几天里,我一直在研究MVC应用程序.在这里,我使用几个下拉列表,并希望如果我所做的是一个很好的做法.我有大约5-6个下拉列表从数据库中提取.下拉列表中有ID和说明字段.我能够通过问题填写下拉菜单.但是,当我列出主表时,我遇到了性能问题.
所有下拉选项都作为整数存储在数据库中,因此我也将该字段与BaseModel(映射到HBM的类)一样.当我列出数据库中的所有记录时,可以预见我在记录中得到一个整数.到目前为止,我在性能方面没有任何问题. 我想显示所选项目的描述,因此我为下拉列表创建了一个模型类,并在模型中有一个方法,该方法将与数据库通信并根据选择获取描述.问题是这会减慢页面加载速度.我想知道我是否需要进行设计更改才能更快地加载.以下是我的代码 MasterList1表(状态和县是此表中的整数) Nhibernate的BaseModel类 MasterList1 模型类 MasterList1Model 存储库类 视图 在视图中,我在BaseModel类中调用字符串proprty.在属性中,我正在调用Model类,而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(); } 我不知道如何改善这一点.有什么建议 ? 解决方法
你知道
ViewModel approuch吗?它是一个表示View需要显示的类.您可以创建一个ViewModel类,其中包含您需要的这些类型,并使用此类键入您的视图,使用NHibernate填充它然后显示它,示例:
public class ApplicationTypeMasterViewModel { public int Id { get; set; } public string Name { get; set; } public string CityName { get; set; } public string StateName { get; set; } // other properties you need public ApplicationTypeMasterViewModel() { } } 在您的服务层,尝试这样的事情: public ApplicationTypeMasterViewModel GetByID(int ID) { using (ISession session = NHibernateHelper.OpenSession()) { return session.Query<ApplicationTypeMaster>() .Fetch(x => x.City).ThenFetch(c => c.State) .Where(x => x.Id == ID) .Select(x => new ApplicationTypeMasterViewModel() { Id = x.Id,Name = x.Name,CityName = x.City.Name,StateName = x.City.State.Name // other properties you need }) .FirstOrDefault(); } } 您可以使用Lists或Single对象来完成. 在控制器中,您可以调用此方法并将ViewModel传递给View并呈现它: <p> <label>Name: </labe> <%: Model.Name %> </p> <p> <label>City: </labe> <%: Model.CityName %> </p> <p> <label>State: </labe> <%: Model.StateName %> </p> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- IIS7上的ASP.NET身份验证问题 – 对于Windows身份
- asp.net MVC的Html.RadioButton生成id和名称相同
- asp.net-core – 为什么要在本地运行IIS Express
- 如何在ASP.NET和C#中加载下拉列表?
- asp.net-mvc – 如何根据枚举值检查单选按钮
- asp.net-mvc – ASP.NET MVC门户可用吗?
- asp.net-mvc – ASP.NET MVC SiteMap提供程序 –
- asp.net-mvc – ASP.NET MVC组合下拉框
- 哪个是在ASP.NET中使用字符串的最佳实践(C#)
- asp.net-mvc – 当前上下文错误中不存在名称“Ur