mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-18 20:08:15 +08:00
- 增加 fsql.Insert(Dictionary<string, object>) 无实体类插入方法;#481
This commit is contained in:
@ -27,7 +27,7 @@ namespace FreeSql.Oracle
|
||||
public int GetDbType(DbColumnInfo column) => (int)GetSqlDbType(column);
|
||||
OracleDbType GetSqlDbType(DbColumnInfo column)
|
||||
{
|
||||
var dbfull = column.DbTypeTextFull.ToLower();
|
||||
var dbfull = column.DbTypeTextFull?.ToLower();
|
||||
switch (dbfull)
|
||||
{
|
||||
case "number(1)": return OracleDbType.Boolean;
|
||||
@ -55,7 +55,7 @@ namespace FreeSql.Oracle
|
||||
|
||||
case "char(36 char)": return OracleDbType.Char;
|
||||
}
|
||||
switch (column.DbTypeText.ToLower())
|
||||
switch (column.DbTypeText?.ToLower())
|
||||
{
|
||||
case "number":
|
||||
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["number(10,2)"]);
|
||||
@ -110,7 +110,7 @@ namespace FreeSql.Oracle
|
||||
return OracleDbType.BinaryDouble;
|
||||
case "rowid":
|
||||
default:
|
||||
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]);
|
||||
if (dbfull != null) _dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]);
|
||||
return OracleDbType.NVarchar2;
|
||||
}
|
||||
throw new NotImplementedException($"未实现 {column.DbTypeTextFull} 类型映射");
|
||||
|
@ -18,17 +18,18 @@ namespace FreeSql.Oracle
|
||||
public override DbParameter AppendParamter(List<DbParameter> _params, string parameterName, ColumnInfo col, Type type, object value)
|
||||
{
|
||||
if (string.IsNullOrEmpty(parameterName)) parameterName = $"p_{_params?.Count}";
|
||||
var dbtype = (OracleDbType)_orm.CodeFirst.GetDbInfo(type)?.type;
|
||||
var dbtype = (OracleDbType?)_orm.CodeFirst.GetDbInfo(type)?.type;
|
||||
if (dbtype == OracleDbType.Boolean)
|
||||
{
|
||||
if (value == null) value = null;
|
||||
else value = (bool)value == true ? 1 : 0;
|
||||
dbtype = OracleDbType.Int16;
|
||||
}
|
||||
var ret = new OracleParameter { ParameterName = QuoteParamterName(parameterName), OracleDbType = dbtype, Value = value };
|
||||
var ret = new OracleParameter { ParameterName = QuoteParamterName(parameterName), Value = value };
|
||||
if (dbtype != null) ret.OracleDbType = dbtype.Value;
|
||||
if (col != null)
|
||||
{
|
||||
var dbtype2 = (OracleDbType)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeTextFull = col.Attribute.DbType.Replace("NOT NULL", "").Replace(" NULL", "").Trim(), DbTypeText = col.DbTypeText });
|
||||
var dbtype2 = (OracleDbType)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeTextFull = col.Attribute.DbType?.Replace("NOT NULL", "").Replace(" NULL", "").Trim(), DbTypeText = col.DbTypeText });
|
||||
switch (dbtype2)
|
||||
{
|
||||
case OracleDbType.Char:
|
||||
|
Reference in New Issue
Block a user