示例#1
0
        public void NpgsqlDbTypeExtension()
        {
            using (var conn = OpenConnection())
            {
                TestUtil.EnsureExtension(conn, "hstore", "9.1");

                using (var cmd = new NpgsqlCommand("SELECT NULL::HSTORE", conn))
                    using (var reader = cmd.ExecuteReader(CommandBehavior.SchemaOnly))
                    {
                        var columns = reader.GetColumnSchema();
                        // The full datatype name for PostGIS is public.geometry (unlike int4 which is in pg_catalog).
                        Assert.That(columns[0].NpgsqlDbType, Is.EqualTo(NpgsqlTypes.NpgsqlDbType.Hstore));
                    }
            }
        }
示例#2
0
        public void StringToCitext()
        {
            using (var conn = OpenLocalConnection())
            {
                TestUtil.EnsureExtension(conn, "citext");

                conn.TypeMapper.RemoveMapping("text");
                conn.TypeMapper.AddMapping(new NpgsqlTypeMappingBuilder
                {
                    PgTypeName         = "citext",
                    NpgsqlDbType       = NpgsqlDbType.Citext,
                    DbTypes            = new[] { DbType.String },
                    ClrTypes           = new[] { typeof(string) },
                    TypeHandlerFactory = new TextHandlerFactory()
                }.Build());

                using (var cmd = new NpgsqlCommand("SELECT @p = 'hello'::citext", conn))
                {
                    cmd.Parameters.AddWithValue("p", "HeLLo");
                    Assert.That(cmd.ExecuteScalar(), Is.True);
                }
            }
        }