Skip to content

Commit e3bd18e

Browse files
Add SetFlushMode to QueryOver
1 parent d4206e2 commit e3bd18e

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

src/NHibernate.Test/Criteria/Lambda/QueryOverFixture.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -965,6 +965,19 @@ public void SetComment()
965965
AssertCriteriaAreEqual(expected, actual);
966966
}
967967

968+
[Test]
969+
public void SetFlushMode(
970+
[Values(FlushMode.Always, FlushMode.Auto, FlushMode.Commit, FlushMode.Manual)] FlushMode flushMode)
971+
{
972+
var expected =
973+
CreateTestCriteria(typeof(Person))
974+
.SetFlushMode(flushMode);
975+
var actual =
976+
CreateTestQueryOver<Person>()
977+
.SetFlushMode(flushMode);
978+
AssertCriteriaAreEqual(expected, actual);
979+
}
980+
968981
[Test]
969982
public void DetachedQueryOver()
970983
{

src/NHibernate/QueryOverExtensions.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,17 @@ public static TQueryOver SetComment<TQueryOver>(this TQueryOver queryOver, strin
3939
queryOver.RootCriteria.SetComment(comment);
4040
return queryOver;
4141
}
42+
43+
/// <summary>
44+
/// Override the current session flush mode, just for this query.
45+
/// </summary>
46+
/// <param name="queryOver">The query on which to set the flush mode.</param>
47+
/// <param name="flushMode">The flush mode to use for the query.</param>
48+
/// <returns><see langword="this" /> (for method chaining).</returns>
49+
public static TQueryOver SetFlushMode<TQueryOver>(this TQueryOver queryOver, FlushMode flushMode) where TQueryOver: IQueryOver
50+
{
51+
queryOver.RootCriteria.SetFlushMode(flushMode);
52+
return queryOver;
53+
}
4254
}
4355
}

0 commit comments

Comments
 (0)