我正在開發一個ASP.NET MVC應用程序,我們必須編寫自己的分頁代碼。 而且我看到元素在不同的頁面上重複。發生這種情況是因爲IQueryable中元素的順序隨機變化,必須爲每個頁面查詢數據庫。 我通過按照創建日期排序元素,然後按我想要的順序來解決此問題。但我感覺它很重。有沒有更好的方法來解決這個問題。元素的順序在IQueryable中有所不同,每當我用相同的條件查詢時
0
A
回答
1
如果您通過IQuerable從數據庫中獲取行並在一列上進行排序,如果在該列中具有相同值的行的順序可能會有所不同,那麼您需要按照現在的方式進行操作,即按兩列排序,首先是你真正感興趣的那一列,然後是第二列(如日期),因爲排序是在數據庫中完成的,所以不應該有那麼大的性能影響。
但是需要做的是指定如下排序:
Context.Products
.Where(p => p.ProductID > 100)
.OrderBy(p => p.CategoryID)
.ThenBy(p => p.Date).ToList();
通知的ThenBy,將產生正確的SQL。
1
不,這是正確的方法。如果您不告訴它按某種順序排列,數據庫可能會以非確定性順序返回行。
0
看一看:Bill Wagner的http://srtsolutions.com/blogs/billwagner/archive/2006/10/14/paging-output-with-linq2sql.aspx。
他使用Take()和Skip()創建分頁輸出。
相關問題
- 1. SQL排序順序與MS-ACCESS與.NET中的相同查詢有所不同
- 2. 比較具有不同順序的相同元素的數組
- 3. 以不同的順序檢測具有相同元素的行
- 4. 有條件的addClass不能用於具有相同類的每個元素
- 5. 檢查查詢中不同表格中的相同條件
- 6. 當在JVM5 vs JVM6中運行相同的程序時,HashMap中的項目順序有所不同
- 7. 「選擇」元素的順序是否有所不同?
- 8. Sqlite查詢:在字段的所有元素中插入相同的值
- 9. 當ID相同時獲取所有數據的查詢
- 10. 訪問查詢不同記錄時,所有行相同
- 11. 如何遍歷相同類型的所有html元素,但對每個元素應用不同的更改?
- 12. 我可以使用相同的Linq代碼來查詢不同的條件嗎?
- 13. 我怎樣才能db.collection.count()在不同的條件相同的查詢?
- 14. C++向量中的所有元素指向相同的元素
- 15. ruby中的.each迭代器是否保證每次都在相同的元素上給出相同的順序?
- 16. Linq查詢列表中包含有相同的順序
- 17. 所有元素都相同,但不完全相同?
- 18. ActiveRecord爲相同的條件產生不同的查詢
- 19. 每個數組元素上的相同SQL查詢
- 20. Gojs - 畫布中的圖元素順序在Chrome和Mozilla之間有所不同
- 21. 在Watir Ruby中訪問順序相同的元素
- 22. 在std :: multiset中維護插入順序相同的元素
- 23. 當我運行相同的查詢
- 24. 在ClearCase中查找相同的元素
- 25. 在不同的元素在不同的時間使用相同的動畫
- 26. 加入2查詢有相同的信息只有不同的搜索條件
- 27. 當我點擊相同的元素時如何觸發不同的功能?
- 28. CorePlot - CPTTimeFormatter爲我的條形圖的每個元素提供相同的時間
- 29. 如何檢查列表中的所有元素是否相同?
- 30. 不同條件下的相同列查詢
它有什麼不同,如果我寫.OrderBy(p => p.CategoryID) .OrderBy(p => p.Date).ToList()? – San 2009-12-15 07:58:19
因爲那麼你通過categoryId來排列列表,然後再按日期排序,第一個排序(按類別)不會生效,列表將按日期排序。 ordernig類別的唯一影響是具有相同日期的項目將按id排序,因此實際上應該相當於執行OrderBy(p => p.Date)。ThenBy(p => p.CategoryID)但不是肯定的是,這取決於OrderBy函數的實現。 – Torkel 2009-12-16 19:10:55