2010-07-15 41 views
4

我現在用的是漂亮的小號#ARP信息庫和尋呼擴展方法加上排序是這樣的:automapper +延遲加載+ MVC的contrib電網+ S#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網格執行短缺憾的是,它不允許排序爲自定義列(例如組合的列值)像這樣:

String.Format("{0} {1}", lab.Proposer.LastName, lab.Proposer.FirstName) 

(在視圖中使用)

我試圖避免在我的相當簡單的s#arp解決方案中查看模型,但也許我可以在這種情況下使用視圖模型來允許按自定義列進行排序。

我已經使用automapper映射域模型,在過去查看模式,反之亦然。但是,我有這個解決方案的一個問題。這仍然工作使用延遲加載?

換句話說不automapper不必所有域對象首先映射到視圖的對象之前它可以做排序和分頁導致性能降低?

我希望這是有道理的,你明白我在做什麼。謝謝。

最良好的祝願,

基督教

回答

-1
  1. 是整理和查詢(其中一些= BLA BLA)具有分頁之前完成,實際上你要關心這個只有當你寫sql,否則如果你使用休眠或linq2sql或類似的東西你不

  2. 所有automapper正在做的是從一個對象的價值觀,並把它放入另一個對象(有一些數據轉換涉及,配置和所有th在東西),除非你寫的一些東西,在一個自定義valueresolver,你基本上可以寫任何東西,之後您可以使用此valueresolver對於一些特定的屬性

乾杯