diff --git a/src/NHibernate.Test/SqlCommandTest/SqlStringFixture.cs b/src/NHibernate.Test/SqlCommandTest/SqlStringFixture.cs index 361b2b1525e..3275ed54041 100644 --- a/src/NHibernate.Test/SqlCommandTest/SqlStringFixture.cs +++ b/src/NHibernate.Test/SqlCommandTest/SqlStringFixture.cs @@ -263,8 +263,8 @@ public void TrimAllParam() Parameter p2 = Parameter.Placeholder; SqlString sql = new SqlString(new object[] { p1, p2 }); - sql = sql.Trim(); + Assert.That(ReferenceEquals(sql, sql.Trim()), Is.True); Assert.AreEqual("??", sql.ToString()); } diff --git a/src/NHibernate/SqlCommand/SqlString.cs b/src/NHibernate/SqlCommand/SqlString.cs index 311f8a06ef0..b9576d0aa76 100644 --- a/src/NHibernate/SqlCommand/SqlString.cs +++ b/src/NHibernate/SqlCommand/SqlString.cs @@ -702,6 +702,10 @@ public SqlString Trim() if (_firstPartIndex < 0) return this; GetTrimmedIndexes(out var sqlStartIndex, out var length); + + if (_sqlStartIndex == sqlStartIndex && _length == length) + return this; + return length > 0 ? new SqlString(this, sqlStartIndex, length) : Empty;