我正在使用漂亮的#arp存储库和分页扩展方法加上这样的排序:
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));
}
...
我的第一个问题是:
(1)在分页之前必须完成排序并且所有这些都使用延迟加载(即内部使用TOP n或实际SQL中的某些内容)是否正确?
当前mvc contrib grid实现的一个缺点是它不允许对自定义列进行排序(例如组合列值),如下所示:
String.Format("{0} {1}", lab.Proposer.LastName, lab.Proposer.FirstName)
(在视图中使用)
我试图在相当简单的s#arp解决方案中避免使用视图模型,但在这种情况下我可以使用视图模型来允许按自定义列进行排序。
我曾使用automapper将域模型映射到视图模型,反之亦然。但是,我对此解决方案存在一个问题。这仍然可以使用延迟加载吗?
换句话说,在它可以进行排序和分页导致性能下降之前,automapper不必先将所有域对象映射到视图对象吗?
我希望这是有道理的,你明白我的意思。感谢。
祝福,
基督教
答案 0 :(得分:-1)
是的,在分页之前必须进行排序和查询(其中某些东西= bla bla),实际上只有在你编写sql时你才需要关心这个,否则如果你使用hibernate或linq2sql或类似的东西你不要“T
所有的automapper正在做的是从一个对象获取值并将其放入另一个对象(涉及一些数据转换,配置和所有这些东西),除非你在自定义值解析器中写一些东西,你可以基本上写任何东西,然后你可以将这个值解析器用于某些特定的属性
干杯