2009-05-05 94 views
1

我正在使用gridview的objectdatasource從我的orm類中獲取數據,但我無法通過正確的順序獲取它。 我正在使用下面的代碼,但它不會按照我在下面指定的降序順序出現。我錯過了什麼?使用亞音速2.1順序不工作

<DataObjectMethod(DataObjectMethodType.Select, True)> Public Function FetchByPatID(ByVal PatientID As Object) As VisitCollection 

    Dim coll As VisitCollection = New VisitCollection().Where("PatientID", PatientID).Load() 
    **OrderBy.Desc(Visit.DosColumn)** 
    Return coll 

End Function 
+0

是Visit.DosColumn東西排序? – 2009-05-05 13:41:56

+0

什麼是OrderBy.Desc? 我不是一個VB大師,但是使用LINQ`OrderBy`?如果是這樣,當迭代結果時(它會返回一個新序列而不改變原始序列),LINQ的OrderBy實際上只會執行任何操作。 – 2009-05-05 13:44:59

回答

4

作爲查詢的一部分,對數據庫執行order by。它需要在調用.Load()方法之前添加。

Dim coll As VisitCollection = New VisitCollection().Where("PatientID", PatientID).OrderByDesc(Visit.Columns.DosColumn).Load() 
2

Ranomore是正確的。您必須在實際執行命令之前指定OrderBy,因爲在數據庫上完成了排序。

如果您正在使用亞音速2.1,我更喜歡已經添加了新的語法,這使得查詢更可讀

SubSonic.Select.AllColumnsFrom(Of Visit)().Where(Visit.PatientIDColumn).isEqualTo(PatientID).OrderByDesc(Visit.DosColumn.ColumnName).ExecuteAsCollection(Of VisitCollection)()