- 修复 UseGenerateCommandParameterWithLambda 对不可参数化的数据类型冲突的 bug;#1061

This commit is contained in:
2881099 2022-03-30 18:37:56 +08:00
parent 79d1b67875
commit 713f98852c

View File

@ -1887,11 +1887,14 @@ namespace FreeSql.Internal
if (_common.CodeFirst.IsGenerateCommandParameterWithLambda && dbParams != null) if (_common.CodeFirst.IsGenerateCommandParameterWithLambda && dbParams != null)
{ {
if (obj == null) return "NULL"; if (obj == null) return "NULL";
var paramName = $"exp_{dbParams.Count}"; var type = mapType ?? mapColumn?.Attribute.MapType ?? obj?.GetType();
if (_common._orm?.Ado.DataType == DataType.GBase) paramName = "?"; if (_common.CodeFirst.GetDbInfo(type) != null)
var parm = _common.AppendParamter(dbParams, paramName, mapColumn, {
mapType ?? mapColumn?.Attribute.MapType ?? obj?.GetType(), mapType == null ? obj : Utils.GetDataReaderValue(mapType, obj)); var paramName = $"exp_{dbParams.Count}";
return _common.QuoteParamterName(paramName); if (_common._orm?.Ado.DataType == DataType.GBase) paramName = "?";
var parm = _common.AppendParamter(dbParams, paramName, mapColumn, type, mapType == null ? obj : Utils.GetDataReaderValue(mapType, obj));
return _common.QuoteParamterName(paramName);
}
} }
return string.Format(CultureInfo.InvariantCulture, "{0}", _ado.AddslashesProcessParam(obj, mapType, mapColumn)); return string.Format(CultureInfo.InvariantCulture, "{0}", _ado.AddslashesProcessParam(obj, mapType, mapColumn));
//return string.Concat(_ado.AddslashesProcessParam(obj, mapType, mapColumn)); //return string.Concat(_ado.AddslashesProcessParam(obj, mapType, mapColumn));