1
- using NUnit . Framework ;
1
+ using System . Collections . Generic ;
2
+ using NUnit . Framework ;
3
+ using ServiceStack . DataAnnotations ;
2
4
using ServiceStack . Text ;
3
5
4
6
namespace ServiceStack . OrmLite . Tests . Issues
@@ -17,6 +19,19 @@ public class DistinctJoinColumn
17
19
public string Name { get ; set ; }
18
20
}
19
21
22
+ [ Alias ( "t1" ) ]
23
+ class TableWithAliases
24
+ {
25
+ public int Id { get ; set ; }
26
+
27
+ [ Alias ( "n1" ) ]
28
+ public string Name { get ; set ; }
29
+ [ Alias ( "n2" ) ]
30
+ public string Name1 { get ; set ; }
31
+ [ Alias ( "n3" ) ]
32
+ public string Name2 { get ; set ; }
33
+ }
34
+
20
35
[ TestFixture ]
21
36
public class SelectDistinctTests
22
37
: OrmLiteTestBase
@@ -43,12 +58,38 @@ public void Can_Select_Multiple_Distinct_Columns()
43
58
var q = db . From < DistinctColumn > ( )
44
59
. Join < DistinctJoinColumn > ( )
45
60
. SelectDistinct ( dt => new { dt . Bar , dt . Foo } ) ;
46
-
61
+
47
62
var result = db . Select ( q ) ;
48
63
db . GetLastSql ( ) . Print ( ) ;
49
64
50
65
Assert . That ( result . Count , Is . EqualTo ( 2 ) ) ;
51
66
}
52
67
}
68
+
69
+ [ Test ]
70
+ public void Does_select_alias_in_custom_select ( )
71
+ {
72
+ using ( var db = OpenDbConnection ( ) )
73
+ {
74
+ db . DropAndCreateTable < TableWithAliases > ( ) ;
75
+
76
+ for ( var i = 1 ; i <= 5 ; i ++ )
77
+ {
78
+ db . Insert ( new TableWithAliases { Id = i , Name = "foo" + i , Name1 = "bar" + i , Name2 = "qux" + i } ) ;
79
+ }
80
+
81
+ var uniqueTrackNames = db . ColumnDistinct < string > (
82
+ db . From < TableWithAliases > ( ) . Select ( x => x . Name ) ) ;
83
+
84
+ Assert . That ( uniqueTrackNames , Is . EquivalentTo ( new [ ]
85
+ {
86
+ "foo1" ,
87
+ "foo2" ,
88
+ "foo3" ,
89
+ "foo4" ,
90
+ "foo5" ,
91
+ } ) ) ;
92
+ }
93
+ }
53
94
}
54
95
}
0 commit comments