public IDbDataParameter[] GetParameters(DbManager db, object obj) { IDbDataParameter[] parameters = new IDbDataParameter[_parameters.Count]; for (int i = 0; i < _parameters.Count; i++) { SqlQueryParameterInfo info = _parameters[i]; //parameters[i] = db.Parameter(info.ParameterName, info.MemberMapper.GetValue(obj)); MapMemberInfo mmi = info.MemberMapper.MapMemberInfo; object val = info.MemberMapper.GetValue(obj); if (val == null && mmi.Nullable && mmi.NullValue == null) { //replace value with DbNull val = DBNull.Value; } if (mmi.IsDbTypeSet) { parameters[i] = mmi.IsDbSizeSet ? db.Parameter(info.ParameterName, val, info.MemberMapper.DbType, mmi.DbSize) : db.Parameter(info.ParameterName, val, info.MemberMapper.DbType); } else { parameters[i] = db.Parameter(info.ParameterName, val); } } return(parameters); }
protected override MemberMapper CreateMemberMapper(MapMemberInfo mapMemberInfo) { if (mapMemberInfo.Type == typeof(CustomString)) { MemberMapper mm = new CustomString.Mapper(); mm.Init(mapMemberInfo); return(mm); } return(base.CreateMemberMapper(mapMemberInfo)); }
public override void Init(MapMemberInfo mapMemberInfo) { mapMemberInfo.DbType = DbType.AnsiString; base.Init(mapMemberInfo); }