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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值