例如,將會的EntityFramework where子句總是以相同的順序
products.Where(p => p.LastModifiedOn > someDate)
總是以相同的順序返回產品返回(沒關係,因爲它是一貫的我每次通話時間它是如何排序的,只要相同的代碼)?或者我應該添加.OrderBy()
方法以確保?
例如,將會的EntityFramework where子句總是以相同的順序
products.Where(p => p.LastModifiedOn > someDate)
總是以相同的順序返回產品返回(沒關係,因爲它是一貫的我每次通話時間它是如何排序的,只要相同的代碼)?或者我應該添加.OrderBy()
方法以確保?
或者我應該添加.OrderBy()方法以確保?
是的你應該。它內部轉換爲下層數據源語言,例如Select * from table where ...
,並且其返回值不保證始終處於相同的順序。
您可能會看到這樣的疑問:Does a SELECT query always return rows in the same order? Table with clustered index
的LINQ to SQL不維持秩序。既然你提到了EntityFramework,那就是你的問題的答案。但是,您應該注意,LINQ to Objects確實保持順序 - 與輸入可枚舉的順序相同。
EntityFramework不使用Linq-to-SQL。它使用Linq-to-Entities。 – JustAnotherUserYouMayKnow 2013-04-11 12:04:22
什麼是你的表的模式?你使用的是什麼數據庫? – vittore 2013-04-11 11:46:43
你還可以詳細說明爲什麼你不關心元素的順序,只有它是相同的?如果你有一些記錄作爲查詢的結果,並且下一次會有另一組記錄呢?我相信你的LastModifiedOn字段是時間戳,所以很可能會發生。 – vittore 2013-04-11 11:53:10
@vittore我想你誤解了我的問題。我關心元素的順序,這就是我所要求的。哈比卜的回答正是我所期待的。 – StarCub 2013-04-11 12:02:56