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
4

2 回答 2

4

作为查询的一部分,order by 对数据库执行。它需要在调用 .Load() 方法之前添加。

Dim coll As VisitCollection = New VisitCollection().Where("PatientID", PatientID).OrderByDesc(Visit.Columns.DosColumn).Load()
于 2009-05-05T14:32:23.210 回答
2

拉诺莫尔是正确的。您必须在实际执行命令之前指定 OrderBy,因为排序是在数据库上完成的。

如果您使用的是 SubSonic 2.1,我更喜欢添加的新语法,这使得查询更具可读性

SubSonic.Select.AllColumnsFrom(Of Visit)().Where(Visit.PatientIDColumn).isEqualTo(PatientID).OrderByDesc(Visit.DosColumn.ColumnName).ExecuteAsCollection(Of VisitCollection)()
于 2009-05-05T17:24:46.837 回答