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)