這是一個古怪的問題,我想。我可以將NHibernate的默認「OrderBy」設置爲「CreatedDate」而不是「Id」嗎?
除非我在HQL或Criteria中設置OrderBy,否則我可以通過默認方式讓NHibernate要求SQL通過CreatedDate對數據進行排序嗎?我很想知道這種排序是否可以在數據庫級完成,以避免引入LINQ。
的原因是,我使用的GUID對於IDS,當我做這樣的事情:
Sheet sheet = sheetRepository.Get(_someGUID);
IList<SheetLineItems> lineItems = sheet.LineItems;
來獲取所有了LineItem的,他們回來的任何武斷的方式,SQL排序,取指,這是我圖是GUID。在某些時候,我會將序號添加到我的訂單項中,但現在,我只想使用CreatedDate作爲排序標準。我不想被迫做:
IList<SheetLineItem> lineItems = sheetLineItemRepository.GetAll(_sheetGUID);
然後寫這個方法來按照CreatedDate進行排序。我想如果一切都按默認排序在CreatedDate上,那很好,除非特別要求否則。
丹尼爾Renshaw(作爲另一個問題的答案的一部分)建議在這裏使用NHibernate包裝上的order-by屬性(http://stackoverflow.com/questions/2723774/for-sql-select-returning-more-than-1 - 值 - 如何 - 都 - 它們排序,當-ID-是全局唯一標識符)。我認爲這是恰當的,所以我想我會留在這裏讓其他人閱讀爲可能的解決方案。 – 2010-04-27 19:17:43