示例#1
0
        public void InsertNull()
        {
            using (var s = OpenSession())
            {
                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
            using (var provider = ConnectionProviderFactory.NewConnectionProvider(cfg.Properties))
            {
                var conn = provider.GetConnection();
                try
                {
                    using (var cmd = conn.CreateCommand())
                    {
                        cmd.Connection  = conn;
                        cmd.CommandText = "select * from usertype";

                        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);
                }
            }
        }
        public void InsertNull()
        {
            using (ISession s = OpenSession())
            {
                ClassWithNullColumns userTypeClass = new ClassWithNullColumns();
                userTypeClass.Id          = 5;
                userTypeClass.FirstInt32  = 4;
                userTypeClass.SecondInt32 = 0;                 // with the user type should set value to null

                s.Save(userTypeClass);
                s.Flush();
            }

            // manually read from the db
            IConnectionProvider provider = ConnectionProviderFactory.NewConnectionProvider(cfg.Properties);
            IDbConnection       conn     = provider.GetConnection();
            IDbCommand          cmd      = conn.CreateCommand();

            cmd.Connection  = conn;
            cmd.CommandText = "select * from usertype";

            IDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                Assert.AreEqual(5, reader[0]);
                Assert.AreEqual(4, reader[1]);
                Assert.AreEqual(DBNull.Value, reader[2]);
                break;
            }

            conn.Close();

            using (ISession s = OpenSession())
            {
                s.Delete("from ClassWithNullColumns");
                s.Flush();
            }
        }