C# Dapper组件操作Oracle数据库使用boolean属性列

C# Dapper组件操作Oracle数据库使用boolean属性列。

Dapper insert bool类型

在使用Dapper类库操纵Oracle数据库时使用bool类型的属性对于数据库的数字列。

Dapper ORA-03115: 不支持的网络数据类型或表示法
 

数据模型类使用bool的属性对应Oracle数据库的Number(1)。

select和Insert都成功了。

环境:Dapper 1.60,Oracle 11g

Oracle的表中的列使用 number(1);

1:true;

0:false;

public class BoolTypeHandler : SqlMapper.TypeHandler<bool>
        {
            public override void SetValue(IDbDataParameter parameter, bool value)
            {
                parameter.Value = value ? (byte)1 : (byte)0;
            }

            public override bool Parse(object value)
            {
                return bool.Parse((string)value); 
            }
        }

--在全局调用一次

 SqlMapper.RemoveTypeMap(typeof(bool));
 SqlMapper.AddTypeHandler(typeof(bool), new BoolTypeHandler());

create table SomeTable(

id  number(10),

SomeBoolValue number(1) default 0

);

Class SomeTable {
  bool SomeBoolValue
}
var values = new SomeTable{SomeBoolValue = false};
this.conn.Execute(sqlQuery, values );

var sqlQuery="select * from SomeTable where SomeBoolValue =1";

this.conn.Query<SomeTable >(sqlQuery);

Dapper Oralce bool number(1)

发布了181 篇原创文章 · 获赞 35 · 访问量 76万+

猜你喜欢

转载自blog.csdn.net/dacong/article/details/92800208