MVC4应用程序的持久查询结果

时间:2014-03-31 01:55:48

标签: c# asp.net-mvc-4 pagination

早上好,

我正在开发新的MVC4应用程序,其中包含一个巨大的搜索表单(超过50个参数)。 提交表单后,构建一个复杂的查询,我获得了一个viewModel的IList:

IList<ResultViewModel> results = session.CreateSQLQuery(ComplexQuery).SetResultTransformer(Transformers.AliasToBean<ResultViewModel>()).List<ResultViewModel>();
InterfaceVM.QueryResults = results;

InterfaceVM是我的输出视图用来显示网格结果和Leaflet地图的模型。 一切正常,但我可以获得高达100万条记录的结果。我需要使用PagedList.MVC实现分页,但不必在URL中传递搜索参数。我想避免一次又一次地重建查询和IList对象。

InterfaceVM.QueryResults =results.ToPagedList(pageNumber, 20);

此外,IList结果也将在我的输出视图中多次使用,以生成动态复杂的GIS输出。

我花了几个小时在网上阅读,找到了最佳策略,以便在提交表单后保持结果对象的持久性,以便能够轻松地操作它并避免为每个分页/映射请求重建它。 我在SQL服务器中读到了临时表会话对象 MemoryCache 等...但我不知道什么更适合我的情况。

您对此的意见非常有帮助。我正在使用Fluent NHibernate,MVC4,SQL server 2008 R2。

提前感谢您的帮助

西尔

0 个答案:

没有答案