15
15
using NHibernate . Cache ;
16
16
using NHibernate . Cfg ;
17
17
using NHibernate . Impl ;
18
+ using NHibernate . Linq ;
18
19
using NHibernate . Test . SecondLevelCacheTests ;
19
20
using NSubstitute ;
20
21
using NUnit . Framework ;
@@ -59,6 +60,7 @@ public async Task InvalidatesEntitiesAsync()
59
60
60
61
using ( var session = OpenSession ( ) )
61
62
{
63
+ //Add Item
62
64
using ( var tx = session . BeginTransaction ( ) )
63
65
{
64
66
foreach ( var i in Enumerable . Range ( 1 , 10 ) )
@@ -70,6 +72,7 @@ public async Task InvalidatesEntitiesAsync()
70
72
await ( tx . CommitAsync ( ) ) ;
71
73
}
72
74
75
+ //Update Item
73
76
using ( var tx = session . BeginTransaction ( ) )
74
77
{
75
78
foreach ( var i in Enumerable . Range ( 1 , 10 ) )
@@ -81,6 +84,7 @@ public async Task InvalidatesEntitiesAsync()
81
84
await ( tx . CommitAsync ( ) ) ;
82
85
}
83
86
87
+ //Delete Item
84
88
using ( var tx = session . BeginTransaction ( ) )
85
89
{
86
90
foreach ( var i in Enumerable . Range ( 1 , 10 ) )
@@ -91,14 +95,44 @@ public async Task InvalidatesEntitiesAsync()
91
95
92
96
await ( tx . CommitAsync ( ) ) ;
93
97
}
98
+
99
+ //Update Item using HQL
100
+ using ( var tx = session . BeginTransaction ( ) )
101
+ {
102
+ await ( session . CreateQuery ( "UPDATE Item SET Name='Test'" ) . ExecuteUpdateAsync ( ) ) ;
103
+
104
+ await ( tx . CommitAsync ( ) ) ;
105
+ }
106
+
107
+
108
+ //Update Item using LINQ
109
+ using ( var tx = session . BeginTransaction ( ) )
110
+ {
111
+ await ( session . Query < Item > ( )
112
+ . UpdateBuilder ( )
113
+ . Set ( x => x . Name , "Test" )
114
+ . UpdateAsync ( CancellationToken . None ) ) ;
115
+
116
+ await ( tx . CommitAsync ( ) ) ;
117
+ }
118
+
119
+ //Update Item using SQL
120
+ using ( var tx = session . BeginTransaction ( ) )
121
+ {
122
+ await ( session . CreateSQLQuery ( "UPDATE Item SET Name='Test'" )
123
+ . ExecuteUpdateAsync ( ) ) ;
124
+
125
+ await ( tx . CommitAsync ( ) ) ;
126
+ }
94
127
}
95
128
96
- //Should receive one preinvalidation and one invalidation per commit
129
+ //Should receive one preinvalidation per non-DML commit
97
130
Assert . That ( preInvalidations , Has . Count . EqualTo ( 3 ) ) ;
98
131
Assert . That ( preInvalidations , Has . All . Count . EqualTo ( 1 ) . And . Contains ( "Item" ) ) ;
99
132
100
- Assert . That ( invalidations , Has . Count . EqualTo ( 3 ) ) ;
101
- Assert . That ( invalidations , Has . All . Count . EqualTo ( 1 ) . And . Contains ( "Item" ) ) ;
133
+ ///...and one invalidation per commit
134
+ Assert . That ( invalidations , Has . Count . EqualTo ( 6 ) ) ;
135
+ Assert . That ( invalidations , Has . All . Contains ( "Item" ) ) ;
102
136
}
103
137
104
138
protected override void OnTearDown ( )
0 commit comments