1
1
using System . Data ;
2
+ using System . Linq ;
2
3
using System . Threading . Tasks ;
3
4
using NUnit . Framework ;
4
5
using ServiceStack . DataAnnotations ;
@@ -28,6 +29,14 @@ public class ComputeTest : IHasId<int>
28
29
public string FullName { get ; set ; }
29
30
}
30
31
32
+ public class TestExpression
33
+ {
34
+ [ AutoIncrement ]
35
+ public int Id { get ; set ; }
36
+ public string AccountName { get ; set ; }
37
+ public bool IsActive { get ; set ; }
38
+ }
39
+
31
40
public class SqlServerComputedColumnIssue
32
41
{
33
42
private IDbConnection db ;
@@ -124,5 +133,28 @@ public virtual async Task<T> Create<T>(T obj) where T : IHasId<int>
124
133
// returns the object inserted or updated
125
134
return await db . LoadSingleByIdAsync < T > ( id ) ;
126
135
}
136
+
137
+ [ Test ]
138
+ public async Task LoadSelect_can_query_and_orderBy ( )
139
+ {
140
+ db . DropAndCreateTable < TestExpression > ( ) ;
141
+
142
+ db . Insert ( new TestExpression { AccountName = "Foo" , IsActive = true } ) ;
143
+ db . Insert ( new TestExpression { AccountName = "Bar" , IsActive = false } ) ;
144
+
145
+ var rows = ( await db . LoadSelectAsync < TestExpression > ( x => x . IsActive ) )
146
+ . OrderBy ( x => x . AccountName )
147
+ . ToList ( ) ;
148
+
149
+ Assert . That ( rows . Count , Is . EqualTo ( 1 ) ) ;
150
+ Assert . That ( rows [ 0 ] . AccountName , Is . EqualTo ( "Foo" ) ) ;
151
+
152
+ rows = await db . LoadSelectAsync ( db . From < TestExpression > ( )
153
+ . Where ( x => x . IsActive )
154
+ . OrderBy ( x => x . AccountName ) ) ;
155
+
156
+ Assert . That ( rows . Count , Is . EqualTo ( 1 ) ) ;
157
+ Assert . That ( rows [ 0 ] . AccountName , Is . EqualTo ( "Foo" ) ) ;
158
+ }
127
159
}
128
160
}
0 commit comments