我认为这是一个奇怪的问题。
除非我在我的HQL或Criteria中设置OrderBy,否则我可以让NHibernate默认要求SQL按CreatedDate排序数据吗?我很想知道这种类型是否可以在DB级别完成,以避免引入LINQ。
原因是我使用GUID作为ID,当我做这样的事情时:
Sheet sheet = sheetRepository.Get(_someGUID);
IList<SheetLineItems> lineItems = sheet.LineItems;
获取所有的lineItem,它们以任意方式返回SQL对该提取进行排序,我认为这是GUID。在某些时候,我会在我的订单项中添加序数,但就目前而言,我只想使用CreatedDate作为排序条件。我不想被迫做:
IList<SheetLineItem> lineItems = sheetLineItemRepository.GetAll(_sheetGUID);
然后编写该方法以按CreatedDate排序。我想如果默认情况下所有内容都只是在CreatedDate上排序,那就没问题了,除非另有特别要求。
答案 0 :(得分:1)
您不需要编写方法来进行排序,只需使用LINQ的OrderBy扩展方法:
sheetLineItemRepository.GetAll(_sheetGUID).OrderBy(x => x.CreatedDate);
您可以在数据库中的CreatedDate
上放置聚集索引,然后您可能会按此顺序获取记录,但您绝对不应该依赖它。
答案 1 :(得分:0)