- 增加 IN 参数扩展 where id in @ids;#560

This commit is contained in:
2881099
2020-11-24 00:17:12 +08:00
parent c9a1e2a7b8
commit 3aec26337a
17 changed files with 322 additions and 217 deletions

View File

@ -41,22 +41,27 @@ namespace FreeSql.Dameng
public override DbParameter[] GetDbParamtersByObject(string sql, object obj) =>
Utils.GetDbParamtersByObject<DmParameter>(sql, obj, null, (name, type, value) =>
{
var dbtype = (DmDbType)_orm.CodeFirst.GetDbInfo(type)?.type;
switch (dbtype)
var typeint = _orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = typeint != null ? (DmDbType?)typeint : null;
if (dbtype != null)
{
case DmDbType.Bit:
if (value == null) value = null;
else value = (bool)value == true ? 1 : 0;
dbtype = DmDbType.Int32;
break;
switch (dbtype)
{
case DmDbType.Bit:
if (value == null) value = null;
else value = (bool)value == true ? 1 : 0;
dbtype = DmDbType.Int32;
break;
case DmDbType.Char:
case DmDbType.VarChar:
case DmDbType.Text:
value = string.Concat(value);
break;
case DmDbType.Char:
case DmDbType.VarChar:
case DmDbType.Text:
value = string.Concat(value);
break;
}
}
var ret = new DmParameter { ParameterName = $":{name}", DmSqlType = dbtype, Value = value };
var ret = new DmParameter { ParameterName = $":{name}", Value = value };
if (dbtype != null) ret.DmSqlType = dbtype.Value;
return ret;
});

View File

@ -54,14 +54,16 @@ namespace FreeSql.Oracle
public override DbParameter[] GetDbParamtersByObject(string sql, object obj) =>
Utils.GetDbParamtersByObject<OracleParameter>(sql, obj, ":", (name, type, value) =>
{
var dbtype = (OracleDbType)_orm.CodeFirst.GetDbInfo(type)?.type;
var dbtypeint = _orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = dbtypeint != null ? (OracleDbType?)dbtypeint : null;
if (dbtype == OracleDbType.Boolean)
{
if (value == null) value = null;
else value = (bool)value == true ? 1 : 0;
dbtype = OracleDbType.Int16;
}
var ret = new OracleParameter { ParameterName = $":{name}", OracleDbType = dbtype, Value = value };
var ret = new OracleParameter { ParameterName = $":{name}", Value = value };
if (dbtype != null) ret.OracleDbType = dbtype.Value;
return ret;
});

View File

@ -44,23 +44,27 @@ namespace FreeSql.Sqlite
public override DbParameter[] GetDbParamtersByObject(string sql, object obj) =>
Utils.GetDbParamtersByObject<DbParameter>(sql, obj, "@", (name, type, value) =>
{
var dbtype = (DbType)_orm.CodeFirst.GetDbInfo(type)?.type;
switch (dbtype)
var typeint = _orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = typeint != null ? (DbType?)typeint : null;
if (dbtype != null)
{
case DbType.Guid:
if (value == null) value = null;
else value = ((Guid)value).ToString();
dbtype = DbType.String;
break;
case DbType.Time:
if (value == null) value = null;
else value = ((TimeSpan)value).Ticks / 10000;
dbtype = DbType.Int64;
break;
switch (dbtype.Value)
{
case DbType.Guid:
if (value == null) value = null;
else value = ((Guid)value).ToString();
dbtype = DbType.String;
break;
case DbType.Time:
if (value == null) value = null;
else value = ((TimeSpan)value).Ticks / 10000;
dbtype = DbType.Int64;
break;
}
}
var ret = new SQLiteParameter();
ret.ParameterName = $"@{name}";
ret.DbType = dbtype;
if (dbtype != null) ret.DbType = dbtype.Value;
ret.Value = value;
return ret;
});