Asp.net mvc automapper+;延迟加载+;mvc contrib网格&x2B;s#arp存储库
我使用的是尼斯s#arp存储库和分页扩展方法加上排序,如下所示:Asp.net mvc automapper+;延迟加载+;mvc contrib网格&x2B;s#arp存储库,asp.net-mvc,asp.net-mvc-2,automapper,s#arp-architecture,Asp.net Mvc,Asp.net Mvc 2,Automapper,S#arp Architecture,我使用的是尼斯s#arp存储库和分页扩展方法加上排序,如下所示: public ViewResult Index(int? page, GridSortOptions sort) { ViewData["sort"] = sort; if (!string.IsNullOrEmpty(sort.Column)) { return View(this.LabService.G
public ViewResult Index(int? page, GridSortOptions sort)
{
ViewData["sort"] = sort;
if (!string.IsNullOrEmpty(sort.Column))
{
return View(this.LabService.GetAllLabs().OrderBy(sort.Column, sort.Direction).AsPagination(page ?? 1, 10));
}
String.Format("{0} {1}", lab.Proposer.LastName, lab.Proposer.FirstName)
我的第一个问题是:
(1) 排序必须在分页之前完成,并且所有这些都使用延迟加载(即内部使用TOP n或实际SQL中的某个内容),这是否正确
当前mvc contrib网格实现的一个缺点是不允许对自定义列(例如组合列值)进行排序,如下所示:
public ViewResult Index(int? page, GridSortOptions sort)
{
ViewData["sort"] = sort;
if (!string.IsNullOrEmpty(sort.Column))
{
return View(this.LabService.GetAllLabs().OrderBy(sort.Column, sort.Direction).AsPagination(page ?? 1, 10));
}
String.Format("{0} {1}", lab.Proposer.LastName, lab.Proposer.FirstName)
(在视图中使用)
在我相当简单的s#arp解决方案中,我试图避免使用视图模型,但在这种情况下,也许我可以使用视图模型来允许按自定义列进行排序
在过去,我使用automapper将域模型映射到视图模型,反之亦然。但是,我对这个解决方案有一个问题。使用延迟加载是否仍然有效
换句话说,automapper是否不必先将所有域对象映射到视图对象,然后才能进行排序和分页,从而降低性能
我希望这是有道理的,你明白我的意思。谢谢
致以最良好的祝愿
基督教徒