8
8
//------------------------------------------------------------------------------
9
9
10
10
11
+ using System . Data ;
11
12
using System . Linq ;
12
13
using NHibernate . Cfg . MappingSchema ;
13
14
using NHibernate . Mapping . ByCode ;
15
+ using NHibernate . SqlTypes ;
14
16
using NUnit . Framework ;
15
17
using NHibernate . Linq ;
16
18
@@ -36,15 +38,22 @@ protected override HbmMapping GetMappings()
36
38
return mapper . CompileMappingForAllExplicitlyAddedEntities ( ) ;
37
39
}
38
40
41
+ protected override bool AppliesTo ( Dialect . Dialect dialect )
42
+ {
43
+ return base . AppliesTo ( dialect )
44
+ //Dialects like SQL Server CE, Firebird don't distinguish AnsiString from String
45
+ && Dialect . GetTypeName ( new SqlType ( DbType . AnsiString ) ) != Dialect . GetTypeName ( new SqlType ( DbType . String ) ) ;
46
+ }
47
+
39
48
protected override void OnSetUp ( )
40
49
{
41
50
using ( var session = OpenSession ( ) )
42
51
using ( var transaction = session . BeginTransaction ( ) )
43
52
{
44
- var e1 = new Entity { Name = "Bob" } ;
53
+ var e1 = new Entity { Name = "Bob" } ;
45
54
session . Save ( e1 ) ;
46
55
47
- var e2 = new Entity { Name = "Sally" } ;
56
+ var e2 = new Entity { Name = "Sally" } ;
48
57
session . Save ( e2 ) ;
49
58
50
59
transaction . Commit ( ) ;
@@ -65,12 +74,12 @@ protected override void OnTearDown()
65
74
[ Test ]
66
75
public async Task ParameterTypeForLikeIsProperlyDetectedAsync ( )
67
76
{
68
- using ( var logSpy = new SqlLogSpy ( ) )
77
+ using ( var logSpy = new SqlLogSpy ( ) )
69
78
using ( var session = OpenSession ( ) )
70
79
{
71
80
var result = from e in session . Query < Entity > ( )
72
- where NHibernate . Linq . SqlMethods . Like ( e . Name , "Bob" )
73
- select e ;
81
+ where NHibernate . Linq . SqlMethods . Like ( e . Name , "Bob" )
82
+ select e ;
74
83
75
84
Assert . That ( await ( result . ToListAsync ( ) ) , Has . Count . EqualTo ( 1 ) ) ;
76
85
Assert . That ( logSpy . GetWholeLog ( ) , Does . Contain ( "Type: AnsiString" ) ) ;
@@ -81,12 +90,12 @@ where NHibernate.Linq.SqlMethods.Like(e.Name, "Bob")
81
90
[ Test ]
82
91
public async Task ParameterTypeForContainsIsProperlyDetectedAsync ( )
83
92
{
84
- using ( var logSpy = new SqlLogSpy ( ) )
93
+ using ( var logSpy = new SqlLogSpy ( ) )
85
94
using ( var session = OpenSession ( ) )
86
95
{
87
96
var result = from e in session . Query < Entity > ( )
88
- where e . Name . Contains ( "Bob" )
89
- select e ;
97
+ where e . Name . Contains ( "Bob" )
98
+ select e ;
90
99
91
100
Assert . That ( await ( result . ToListAsync ( ) ) , Has . Count . EqualTo ( 1 ) ) ;
92
101
Assert . That ( logSpy . GetWholeLog ( ) , Does . Contain ( "Type: AnsiString" ) ) ;
@@ -97,12 +106,12 @@ where e.Name.Contains("Bob")
97
106
[ Test ]
98
107
public async Task ParameterTypeForStartsWithIsProperlyDetectedAsync ( )
99
108
{
100
- using ( var logSpy = new SqlLogSpy ( ) )
109
+ using ( var logSpy = new SqlLogSpy ( ) )
101
110
using ( var session = OpenSession ( ) )
102
111
{
103
112
var result = from e in session . Query < Entity > ( )
104
- where e . Name . StartsWith ( "Bob" )
105
- select e ;
113
+ where e . Name . StartsWith ( "Bob" )
114
+ select e ;
106
115
107
116
Assert . That ( await ( result . ToListAsync ( ) ) , Has . Count . EqualTo ( 1 ) ) ;
108
117
Assert . That ( logSpy . GetWholeLog ( ) , Does . Contain ( "Type: AnsiString" ) ) ;
0 commit comments