2012-09-07 73 views
1

context.EntitySet.AsEnumerable().OrderBy()返回一個IOrderedEnumerable這是保證排序,但它看起來像排序完成客戶端。IOrderedQueryable.AsEnumerable()是否仍然有序?

context.EntitySet.OrderBy().AsEnumerable()將表達式保留爲IOrderedQueryable,直到它最終變爲IEnumerable。我相信在這種情況下排序是由數據庫完成的,這是可取的。在一些基本測試中,輸出似乎仍然是有序的。即使IOrderedQueryable.AsEnumerable()僅返回IEnumerable,訂購是否有保證?

+2

當然,它會! –

+0

...爲什麼?然後IEnumerable和IOrderedEnumerable有什麼區別? – Monstieur

+1

@Kurian像'ThenBy'這樣的方法需要'IOrderedEnumerable '。 – CodesInChaos

回答

1

是的,它是有保證的。 AsEnumerable只是一個簡單的向前包裝器(而IOrderedEnumerable實際上只是一個標記接口)。