2009-05-05 28 views
1

私のormクラスからデータを取得するためにobjectdatasourceをgridviewと共に使用していますが、正しく注文することができません。 私は以下のコードを使用していますが、下に指定したような降順ではありません。私は何が欠けていますか?亜音速を使う2.1order by not working

<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何かありますか? –

+0

OrderBy.Descとは何ですか? 私はVBの専門家ではありませんが、LINQの 'OrderBy'を使用していますか?もしそうなら、LINQのOrderByは、結果を反復処理するとき(実際のシーケンスを変更せずに新しいシーケンスを返します)、実際には何もしません。 –

答えて

4

注文の順序は、クエリの一部としてデータベースに対して実行されます。 .Load()メソッドが呼び出される前に追加する必要があります。

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

これは感謝しましたranomore – GTJR

2

ラノモアが正しいです。順序付けがデータベース上で実行されるときに、コマンドを実際に実行する前にOrderByを指定する必要があります。

あなたは亜音速の2.1を使用している場合、私は多くのクエリがはるかに読みやすい

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