1515using NHibernate . Cache ;
1616using NHibernate . Cfg ;
1717using NHibernate . Impl ;
18+ using NHibernate . Linq ;
1819using NHibernate . Test . SecondLevelCacheTests ;
1920using NSubstitute ;
2021using NUnit . Framework ;
@@ -59,6 +60,7 @@ public async Task InvalidatesEntitiesAsync()
5960
6061 using ( var session = OpenSession ( ) )
6162 {
63+ //Add Item
6264 using ( var tx = session . BeginTransaction ( ) )
6365 {
6466 foreach ( var i in Enumerable . Range ( 1 , 10 ) )
@@ -70,6 +72,7 @@ public async Task InvalidatesEntitiesAsync()
7072 await ( tx . CommitAsync ( ) ) ;
7173 }
7274
75+ //Update Item
7376 using ( var tx = session . BeginTransaction ( ) )
7477 {
7578 foreach ( var i in Enumerable . Range ( 1 , 10 ) )
@@ -81,6 +84,7 @@ public async Task InvalidatesEntitiesAsync()
8184 await ( tx . CommitAsync ( ) ) ;
8285 }
8386
87+ //Delete Item
8488 using ( var tx = session . BeginTransaction ( ) )
8589 {
8690 foreach ( var i in Enumerable . Range ( 1 , 10 ) )
@@ -91,14 +95,44 @@ public async Task InvalidatesEntitiesAsync()
9195
9296 await ( tx . CommitAsync ( ) ) ;
9397 }
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+ }
94127 }
95128
96- //Should receive one preinvalidation and one invalidation per commit
129+ //Should receive one preinvalidation per non-DML commit
97130 Assert . That ( preInvalidations , Has . Count . EqualTo ( 3 ) ) ;
98131 Assert . That ( preInvalidations , Has . All . Count . EqualTo ( 1 ) . And . Contains ( "Item" ) ) ;
99132
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" ) ) ;
102136 }
103137
104138 protected override void OnTearDown ( )
0 commit comments