- 增加 fsql.Insert(Dictionary<string, object>) 无实体类插入方法;#481

This commit is contained in:
2881099
2022-03-24 18:06:54 +08:00
parent 56ce675b65
commit dc688adc11
47 changed files with 416 additions and 80 deletions

View File

@ -31,7 +31,7 @@ namespace FreeSql.ClickHouse
column.DbTypeText = column.DbTypeTextFull;
//(?<=\()(\S +)(?=\))
}
switch (column.DbTypeText.ToLower())
switch (column.DbTypeText?.ToLower())
{
case "bit":
case "tinyint":
@ -86,7 +86,7 @@ namespace FreeSql.ClickHouse
case "varchar": return DbType.String;
default:
{
if (column.DbTypeText.ToLower().Contains("datetime"))
if (column.DbTypeText?.ToLower().Contains("datetime") == true)
return DbType.DateTime;
return DbType.String;
}

View File

@ -20,8 +20,8 @@ namespace FreeSql.ClickHouse
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 = (DbType)_orm.CodeFirst.GetDbInfo(type)?.type;
DbParameter ret = new ClickHouseDbParameter { ParameterName = parameterName, DbType = dbtype, Value = value };//QuoteParamterName(parameterName)
var dbtype = (DbType?)_orm.CodeFirst.GetDbInfo(type)?.type;
DbParameter ret = new ClickHouseDbParameter { ParameterName = parameterName, DbType = dbtype ?? default, Value = value };//QuoteParamterName(parameterName)
if (col != null)
{
var dbtype2 = (DbType)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeText = col.DbTypeText, DbTypeTextFull = col.Attribute.DbType, MaxLength = col.DbSize });
@ -40,8 +40,6 @@ namespace FreeSql.ClickHouse
ret.Value = (bool)value ? 1 : 0;
}
}
ret.DbType = dbtype;
_params?.Add(ret);
return ret;
}
@ -52,9 +50,7 @@ namespace FreeSql.ClickHouse
DbParameter ret = new ClickHouseDbParameter { ParameterName = $"?{name}", Value = value };
var tp = _orm.CodeFirst.GetDbInfo(type)?.type;
if (tp != null)
{
ret.DbType = (DbType)tp.Value;
}
return ret;
});
@ -64,13 +60,9 @@ namespace FreeSql.ClickHouse
if (string.IsNullOrWhiteSpace(col?.Attribute.RewriteSql) == false)
return string.Format(col.Attribute.RewriteSql, sql);
if (Regex.IsMatch(sql, @"\{\{[\w\d]+_+\d:\{\d\}\}\}"))
{
return string.Format(sql, col.Attribute.DbType);
}
else
{
return sql;
}
}
public override string FormatSql(string sql, params object[] args) => sql?.FormatClickHouse(args);

View File

@ -27,7 +27,7 @@ namespace FreeSql.Dameng
public int GetDbType(DbColumnInfo column) => (int)GetSqlDbType(column);
DmDbType GetSqlDbType(DbColumnInfo column)
{
var dbfull = column.DbTypeTextFull.ToLower();
var dbfull = column.DbTypeTextFull?.ToLower();
switch (dbfull)
{
case "number(1)": return DmDbType.Bit;
@ -55,7 +55,7 @@ namespace FreeSql.Dameng
case "char(36)": return DmDbType.Char;
}
switch (column.DbTypeText.ToLower())
switch (column.DbTypeText?.ToLower())
{
case "bit":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["number(1)"]);
@ -157,7 +157,7 @@ namespace FreeSql.Dameng
return DmDbType.Double;
case "rowid":
default:
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]);
if (dbfull != null) _dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]);
return DmDbType.VarChar;
}
throw new NotImplementedException($"未实现 {column.DbTypeTextFull} 类型映射");

View File

@ -18,7 +18,7 @@ namespace FreeSql.Dameng
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 = (DmDbType)_orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = (DmDbType?)_orm.CodeFirst.GetDbInfo(type)?.type;
switch (dbtype)
{
case DmDbType.Bit:
@ -40,7 +40,7 @@ namespace FreeSql.Dameng
}
break;
}
var ret = new DmParameter { ParameterName = QuoteParamterName(parameterName), DmSqlType = dbtype, Value = value };
var ret = new DmParameter { ParameterName = QuoteParamterName(parameterName), DmSqlType = dbtype ?? default, Value = value };
_params?.Add(ret);
return ret;
}

View File

@ -27,10 +27,10 @@ namespace FreeSql.Firebird
FbDbType GetFbDbType(DbColumnInfo column)
{
var dbtype = column.DbTypeText;
var isarray = dbtype.EndsWith("[]");
var isarray = dbtype?.EndsWith("[]") == true;
if (isarray) dbtype = dbtype.Remove(dbtype.Length - 2);
FbDbType ret = FbDbType.VarChar;
switch (dbtype.ToLower().TrimStart('_'))
switch (dbtype?.ToLower().TrimStart('_'))
{
case "bigint": ret = FbDbType.BigInt; break;
case "blob": ret = FbDbType.Binary; break;

View File

@ -19,7 +19,7 @@ namespace FreeSql.Firebird
{
if (string.IsNullOrEmpty(parameterName)) parameterName = $"p_{_params?.Count}";
var ret = new FbParameter { ParameterName = QuoteParamterName(parameterName), Value = value };
var dbtype = (FbDbType)_orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = (FbDbType?)_orm.CodeFirst.GetDbInfo(type)?.type;
if (col != null)
{
var dbtype2 = (FbDbType)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeText = col.DbTypeText, DbTypeTextFull = col.Attribute.DbType, MaxLength = col.DbSize });
@ -35,7 +35,7 @@ namespace FreeSql.Firebird
break;
}
}
ret.FbDbType = dbtype;
ret.FbDbType = dbtype ?? default;
_params?.Add(ret);
return ret;
}

View File

@ -28,7 +28,7 @@ namespace FreeSql.GBase
{
var dbtype = column.DbTypeText;
OdbcType ret = OdbcType.VarChar;
switch (dbtype.ToLower().TrimStart('_'))
switch (dbtype?.ToLower().TrimStart('_'))
{
case "int8":
case "serial8":

View File

@ -19,7 +19,7 @@ namespace FreeSql.GBase
{
if (string.IsNullOrEmpty(parameterName)) parameterName = "?";
var ret = new OdbcParameter { ParameterName = "?", Value = value };
var dbtype = (OdbcType)_orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = (OdbcType?)_orm.CodeFirst.GetDbInfo(type)?.type;
if (col != null)
{
var dbtype2 = (OdbcType)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeText = col.DbTypeText, DbTypeTextFull = col.Attribute.DbType, MaxLength = col.DbSize });
@ -35,7 +35,7 @@ namespace FreeSql.GBase
break;
}
}
ret.OdbcType = dbtype;
ret.OdbcType = dbtype ?? default;
_params?.Add(ret);
return ret;
}

View File

@ -29,10 +29,10 @@ namespace FreeSql.KingbaseES
KdbndpDbType GetSqlDbType(DbColumnInfo column)
{
var dbtype = column.DbTypeText;
var isarray = dbtype.EndsWith("[]");
var isarray = dbtype?.EndsWith("[]") == true;
if (isarray) dbtype = dbtype.Remove(dbtype.Length - 2);
var ret = KdbndpDbType.Unknown;
switch (dbtype.ToLower().TrimStart('_'))
switch (dbtype?.ToLower().TrimStart('_'))
{
case "tinyint": ret = KdbndpDbType.Smallint; break;
case "int2": ret = KdbndpDbType.Smallint; break;

View File

@ -30,8 +30,8 @@ namespace FreeSql.MySql
public int GetDbType(DbColumnInfo column) => (int)GetMySqlDbType(column);
MySqlDbType GetMySqlDbType(DbColumnInfo column)
{
var is_unsigned = column.DbTypeTextFull.ToLower().EndsWith(" unsigned");
switch (column.DbTypeText.ToLower())
var is_unsigned = column.DbTypeTextFull?.ToLower().EndsWith(" unsigned") == true;
switch (column.DbTypeText?.ToLower())
{
case "bit": return MySqlDbType.Bit;

View File

@ -23,7 +23,7 @@ namespace FreeSql.MySql
{
if (string.IsNullOrEmpty(parameterName)) parameterName = $"p_{_params?.Count}";
var ret = new MySqlParameter { ParameterName = QuoteParamterName(parameterName), Value = value };
var dbtype = (MySqlDbType)_orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = (MySqlDbType?)_orm.CodeFirst.GetDbInfo(type)?.type;
if (col != null)
{
var dbtype2 = (MySqlDbType)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeText = col.DbTypeText, DbTypeTextFull = col.Attribute.DbType, MaxLength = col.DbSize });
@ -46,7 +46,7 @@ namespace FreeSql.MySql
if (value != null) ret.Value = (value as MygisGeometry).AsText();
}
else
ret.MySqlDbType = dbtype;
ret.MySqlDbType = dbtype ?? default;
_params?.Add(ret);
return ret;
}

View File

@ -20,7 +20,7 @@ namespace FreeSql.MySql
{
if (string.IsNullOrEmpty(parameterName)) parameterName = $"p_{_params?.Count}";
var ret = new MySqlParameter { ParameterName = QuoteParamterName(parameterName), Value = value };
var dbtype = (MySqlDbType)_orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = (MySqlDbType?)_orm.CodeFirst.GetDbInfo(type)?.type;
if (col != null)
{
var dbtype2 = (MySqlDbType)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeText = col.DbTypeText, DbTypeTextFull = col.Attribute.DbType, MaxLength = col.DbSize });
@ -44,7 +44,7 @@ namespace FreeSql.MySql
}
else
{
ret.MySqlDbType = dbtype;
ret.MySqlDbType = dbtype ?? default;
if (ret.MySqlDbType == MySqlDbType.Enum && value != null)
ret.Value = EnumValueToMySql(value);
}

View File

@ -27,7 +27,7 @@ namespace FreeSql.Odbc.Dameng
public int GetDbType(DbColumnInfo column) => (int)GetSqlDbType(column);
OdbcType GetSqlDbType(DbColumnInfo column)
{
var dbfull = column.DbTypeTextFull.ToLower();
var dbfull = column.DbTypeTextFull?.ToLower();
switch (dbfull)
{
case "number(1)": return OdbcType.Bit;
@ -55,7 +55,7 @@ namespace FreeSql.Odbc.Dameng
case "char(36)": return OdbcType.Char;
}
switch (column.DbTypeText.ToLower())
switch (column.DbTypeText?.ToLower())
{
case "bit":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["number(1)"]);
@ -157,7 +157,7 @@ namespace FreeSql.Odbc.Dameng
return OdbcType.Double;
case "rowid":
default:
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]);
if (dbfull != null) _dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]);
return OdbcType.NVarChar;
}
throw new NotImplementedException($"未实现 {column.DbTypeTextFull} 类型映射");

View File

@ -18,7 +18,7 @@ namespace FreeSql.Odbc.Dameng
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 = (OdbcType)_orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = (OdbcType?)_orm.CodeFirst.GetDbInfo(type)?.type;
switch (dbtype)
{
case OdbcType.Bit:
@ -36,7 +36,7 @@ namespace FreeSql.Odbc.Dameng
value = string.Concat(value);
break;
}
var ret = new OdbcParameter { ParameterName = QuoteParamterName(parameterName), OdbcType = dbtype, Value = value };
var ret = new OdbcParameter { ParameterName = QuoteParamterName(parameterName), OdbcType = dbtype ?? default, Value = value };
_params?.Add(ret);
return ret;
}
@ -44,7 +44,7 @@ namespace FreeSql.Odbc.Dameng
public override DbParameter[] GetDbParamtersByObject(string sql, object obj) =>
Utils.GetDbParamtersByObject<OdbcParameter>(sql, obj, null, (name, type, value) =>
{
var dbtype = (OdbcType)_orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = (OdbcType?)_orm.CodeFirst.GetDbInfo(type)?.type;
switch (dbtype)
{
case OdbcType.Bit:
@ -62,7 +62,7 @@ namespace FreeSql.Odbc.Dameng
value = string.Concat(value);
break;
}
var ret = new OdbcParameter { ParameterName = $":{name}", OdbcType = dbtype, Value = value };
var ret = new OdbcParameter { ParameterName = $":{name}", OdbcType = dbtype ?? default, Value = value };
return ret;
});

View File

@ -29,10 +29,10 @@ namespace FreeSql.Odbc.KingbaseES
OdbcType GetSqlDbType(DbColumnInfo column)
{
var dbtype = column.DbTypeText;
var isarray = dbtype.EndsWith("[]");
var isarray = dbtype?.EndsWith("[]") == true;
if (isarray) dbtype = dbtype.Remove(dbtype.Length - 2);
var ret = OdbcType.VarChar;
switch (dbtype.ToLower().TrimStart('_'))
switch (dbtype?.ToLower().TrimStart('_'))
{
case "tinyint": ret = OdbcType.TinyInt; break;
case "int2": ret = OdbcType.SmallInt; break;

View File

@ -26,8 +26,8 @@ namespace FreeSql.Odbc.MySql
public int GetDbType(DbColumnInfo column) => (int)GetOdbcType(column);
OdbcType GetOdbcType(DbColumnInfo column)
{
var is_unsigned = column.DbTypeTextFull.ToLower().EndsWith(" unsigned");
switch (column.DbTypeText.ToLower())
var is_unsigned = column.DbTypeTextFull?.ToLower().EndsWith(" unsigned") == true;
switch (column.DbTypeText?.ToLower())
{
case "bit": return OdbcType.Bit;

View File

@ -27,7 +27,7 @@ namespace FreeSql.Odbc.Oracle
public int GetDbType(DbColumnInfo column) => (int)GetSqlDbType(column);
OdbcType GetSqlDbType(DbColumnInfo column)
{
var dbfull = column.DbTypeTextFull.ToLower();
var dbfull = column.DbTypeTextFull?.ToLower();
switch (dbfull)
{
case "number(1)": return OdbcType.Bit;
@ -55,7 +55,7 @@ namespace FreeSql.Odbc.Oracle
case "char(36 char)": return OdbcType.Char;
}
switch (column.DbTypeText.ToLower())
switch (column.DbTypeText?.ToLower())
{
case "number":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["number(10,2)"]);
@ -110,7 +110,7 @@ namespace FreeSql.Odbc.Oracle
return OdbcType.Double;
case "rowid":
default:
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]);
if (dbfull != null) _dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar2(255)"]);
return OdbcType.NVarChar;
}
throw new NotImplementedException($"未实现 {column.DbTypeTextFull} 类型映射");

View File

@ -18,7 +18,7 @@ namespace FreeSql.Odbc.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 = (OdbcType)_orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = (OdbcType?)_orm.CodeFirst.GetDbInfo(type)?.type;
switch (dbtype)
{
case OdbcType.Bit:
@ -36,7 +36,7 @@ namespace FreeSql.Odbc.Oracle
value = string.Concat(value);
break;
}
var ret = new OdbcParameter { ParameterName = QuoteParamterName(parameterName), OdbcType = dbtype, Value = value };
var ret = new OdbcParameter { ParameterName = QuoteParamterName(parameterName), OdbcType = dbtype ?? default, Value = value };
_params?.Add(ret);
return ret;
}
@ -44,7 +44,7 @@ namespace FreeSql.Odbc.Oracle
public override DbParameter[] GetDbParamtersByObject(string sql, object obj) =>
Utils.GetDbParamtersByObject<OdbcParameter>(sql, obj, null, (name, type, value) =>
{
var dbtype = (OdbcType)_orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = (OdbcType?)_orm.CodeFirst.GetDbInfo(type)?.type;
switch (dbtype)
{
case OdbcType.Bit:
@ -62,7 +62,7 @@ namespace FreeSql.Odbc.Oracle
value = string.Concat(value);
break;
}
var ret = new OdbcParameter { ParameterName = $":{name}", OdbcType = dbtype, Value = value };
var ret = new OdbcParameter { ParameterName = $":{name}", OdbcType = dbtype ?? default, Value = value };
return ret;
});

View File

@ -49,10 +49,10 @@ namespace FreeSql.Odbc.PostgreSQL
OdbcType GetOdbcType(DbColumnInfo column)
{
var dbtype = column.DbTypeText;
var isarray = dbtype.EndsWith("[]");
var isarray = dbtype?.EndsWith("[]") == true;
if (isarray) dbtype = dbtype.Remove(dbtype.Length - 2);
OdbcType ret = OdbcType.VarChar;
switch (dbtype.ToLower().TrimStart('_'))
switch (dbtype?.ToLower().TrimStart('_'))
{
case "int2": ret = OdbcType.SmallInt; break;
case "int4": ret = OdbcType.Int; break;

View File

@ -25,7 +25,7 @@ namespace FreeSql.Odbc.SqlServer
public int GetDbType(DbColumnInfo column) => (int)GetSqlDbType(column);
OdbcType GetSqlDbType(DbColumnInfo column)
{
switch (column.DbTypeText.ToLower())
switch (column.DbTypeText?.ToLower())
{
case "bit": return OdbcType.Bit;
case "tinyint": return OdbcType.TinyInt;

View File

@ -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} 类型映射");

View File

@ -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:

View File

@ -55,10 +55,10 @@ namespace FreeSql.PostgreSQL
NpgsqlDbType GetNpgsqlDbType(DbColumnInfo column)
{
var dbtype = column.DbTypeText;
var isarray = dbtype.EndsWith("[]");
var isarray = dbtype?.EndsWith("[]") == true;
if (isarray) dbtype = dbtype.Remove(dbtype.Length - 2);
NpgsqlDbType ret = NpgsqlDbType.Unknown;
switch (dbtype.ToLower().TrimStart('_'))
switch (dbtype?.ToLower().TrimStart('_'))
{
case "int2": ret = NpgsqlDbType.Smallint; break;
case "int4": ret = NpgsqlDbType.Integer; break;

View File

@ -30,10 +30,10 @@ namespace FreeSql.ShenTong
OscarDbType GetOscarDbType(DbColumnInfo column)
{
var dbtype = column.DbTypeText;
var isarray = dbtype.EndsWith("[]");
var isarray = dbtype?.EndsWith("[]") == true;
if (isarray) dbtype = dbtype.Remove(dbtype.Length - 2);
OscarDbType ret = OscarDbType.Oidvector;
switch (dbtype.ToLower().TrimStart('_'))
switch (dbtype?.ToLower().TrimStart('_'))
{
case "int2": ret = OscarDbType.SmallInt; break;
case "int4": ret = OscarDbType.Integer; break;

View File

@ -24,7 +24,7 @@ namespace FreeSql.SqlServer
public int GetDbType(DbColumnInfo column) => (int)GetSqlDbType(column);
SqlDbType GetSqlDbType(DbColumnInfo column)
{
switch (column.DbTypeText.ToLower())
switch (column.DbTypeText?.ToLower())
{
case "bit": return SqlDbType.Bit;
case "tinyint": return SqlDbType.TinyInt;

View File

@ -26,7 +26,7 @@ namespace FreeSql.Sqlite
public int GetDbType(DbColumnInfo column) => (int)GetSqlDbType(column);
DbType GetSqlDbType(DbColumnInfo column)
{
var dbfull = column.DbTypeTextFull.ToLower();
var dbfull = column.DbTypeTextFull?.ToLower();
switch (dbfull)
{
case "boolean": return DbType.Boolean;
@ -50,7 +50,7 @@ namespace FreeSql.Sqlite
case "character(36)": return DbType.AnsiString;
}
switch (column.DbTypeText.ToLower())
switch (column.DbTypeText?.ToLower())
{
case "int":
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["integer"]);
@ -99,7 +99,7 @@ namespace FreeSql.Sqlite
return DbType.String;
default:
_dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar(255)"]);
if (dbfull != null) _dicDbToCs.TryAdd(dbfull, _dicDbToCs["nvarchar(255)"]);
return DbType.String;
}
throw new NotImplementedException($"未实现 {column.DbTypeTextFull} 类型映射");

View File

@ -23,7 +23,7 @@ namespace FreeSql.Sqlite
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 = (DbType)_orm.CodeFirst.GetDbInfo(type)?.type;
var dbtype = (DbType?)_orm.CodeFirst.GetDbInfo(type)?.type;
switch (dbtype)
{
case DbType.Guid:
@ -43,7 +43,7 @@ namespace FreeSql.Sqlite
var ret = new SQLiteParameter();
#endif
ret.ParameterName = QuoteParamterName(parameterName);
ret.DbType = dbtype;
ret.DbType = dbtype ?? default;
ret.Value = value;
_params?.Add(ret);
return ret;