diff --git a/lib/teamcity/sqlite/x64/System.Data.SQLite.dll b/lib/teamcity/sqlite/x64/System.Data.SQLite.dll index fdd7840909e..4d874dbedd7 100644 Binary files a/lib/teamcity/sqlite/x64/System.Data.SQLite.dll and b/lib/teamcity/sqlite/x64/System.Data.SQLite.dll differ diff --git a/lib/teamcity/sqlite/x86/System.Data.SQLite.dll b/lib/teamcity/sqlite/x86/System.Data.SQLite.dll index 1b5581a0b9b..21931ed50d1 100644 Binary files a/lib/teamcity/sqlite/x86/System.Data.SQLite.dll and b/lib/teamcity/sqlite/x86/System.Data.SQLite.dll differ diff --git a/src/NHibernate.DomainModel/NHSpecific/ClassWithNullColumns.hbm.xml b/src/NHibernate.DomainModel/NHSpecific/ClassWithNullColumns.hbm.xml index 07513a627a1..8cc364f33f4 100644 --- a/src/NHibernate.DomainModel/NHSpecific/ClassWithNullColumns.hbm.xml +++ b/src/NHibernate.DomainModel/NHSpecific/ClassWithNullColumns.hbm.xml @@ -1,29 +1,28 @@  - - + table="usertype"> + - + - + - + diff --git a/src/NHibernate.Test/NHSpecificTest/UserTypeFixture.cs b/src/NHibernate.Test/NHSpecificTest/UserTypeFixture.cs index 4e378a5d717..12e442a6b15 100644 --- a/src/NHibernate.Test/NHSpecificTest/UserTypeFixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/UserTypeFixture.cs @@ -1,6 +1,5 @@ using System; using System.Collections; -using System.Data.Common; using NHibernate.Connection; using NHibernate.DomainModel.NHSpecific; using NUnit.Framework; @@ -14,8 +13,15 @@ namespace NHibernate.Test.NHSpecificTest public class UserTypeFixture : TestCase { protected override IList Mappings + => new [] {"NHSpecific.ClassWithNullColumns.hbm.xml"}; + + protected override void OnTearDown() { - get { return new string[] {"NHSpecific.ClassWithNullColumns.hbm.xml"}; } + using (var s = OpenSession()) + { + s.Delete("from ClassWithNullColumns"); + s.Flush(); + } } /// @@ -25,40 +31,50 @@ protected override IList Mappings [Test] public void InsertNull() { - using (ISession s = OpenSession()) + using (var s = OpenSession()) { - ClassWithNullColumns userTypeClass = new ClassWithNullColumns(); - userTypeClass.Id = 5; - userTypeClass.FirstInt32 = 4; - userTypeClass.SecondInt32 = 0; // with the user type should set value to null + var userTypeClass = new ClassWithNullColumns + { + Id = 5, + FirstInt32 = 4, + SecondInt32 = 0 + }; + // with the user type should set 0 value to null s.Save(userTypeClass); s.Flush(); } // manually read from the db - IConnectionProvider provider = ConnectionProviderFactory.NewConnectionProvider(cfg.Properties); - var conn = provider.GetConnection(); - var cmd = conn.CreateCommand(); - cmd.Connection = conn; - cmd.CommandText = "select * from usertype"; - - var reader = cmd.ExecuteReader(); - - while (reader.Read()) + using (var provider = ConnectionProviderFactory.NewConnectionProvider(cfg.Properties)) { - Assert.AreEqual(5, reader[0]); - Assert.AreEqual(4, reader[1]); - Assert.AreEqual(DBNull.Value, reader[2]); - break; - } - - conn.Close(); + var conn = provider.GetConnection(); + try + { + using (var cmd = conn.CreateCommand()) + { + cmd.Connection = conn; + cmd.CommandText = "select * from usertype"; - using (ISession s = OpenSession()) - { - s.Delete("from ClassWithNullColumns"); - s.Flush(); + using (var reader = cmd.ExecuteReader()) + { + var idOrdinal = reader.GetOrdinal("id"); + var firstOrdinal = reader.GetOrdinal("f_int32"); + var secondOrdinal = reader.GetOrdinal("s_int32"); + while (reader.Read()) + { + Assert.AreEqual(5, reader[idOrdinal]); + Assert.AreEqual(4, reader[firstOrdinal]); + Assert.AreEqual(DBNull.Value, reader[secondOrdinal]); + break; + } + } + } + } + finally + { + provider.CloseConnection(conn); + } } } }