mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
- 修复 InsertDict 部分新功能遗留问题(特别是 Oracle);
This commit is contained in:
parent
b9a21f6c11
commit
ecd27fb3ae
@ -95,7 +95,7 @@ WHERE (a__Parent__Parent.Name = '粤语')", t0);
|
|||||||
var t1 = g.gbase.Select<Tag>().Where(a => a.Tags.AsSelect().Any(t => t.Parent.Id == 10)).ToSql();
|
var t1 = g.gbase.Select<Tag>().Where(a => a.Tags.AsSelect().Any(t => t.Parent.Id == 10)).ToSql();
|
||||||
Assert.Equal(@"SELECT a.Id, a.Parent_id, a.Ddd, a.Name
|
Assert.Equal(@"SELECT a.Id, a.Parent_id, a.Ddd, a.Name
|
||||||
FROM Tag a
|
FROM Tag a
|
||||||
WHERE (exists(SELECT FIRST 1 1
|
WHERE (exists(SELECT 1
|
||||||
FROM Tag t
|
FROM Tag t
|
||||||
LEFT JOIN Tag t__Parent ON t__Parent.Id = t.Parent_id
|
LEFT JOIN Tag t__Parent ON t__Parent.Id = t.Parent_id
|
||||||
WHERE (t__Parent.Id = 10) AND (t.Parent_id = a.Id)))", t1);
|
WHERE (t__Parent.Id = 10) AND (t.Parent_id = a.Id)))", t1);
|
||||||
@ -104,9 +104,9 @@ WHERE (exists(SELECT FIRST 1 1
|
|||||||
var t2 = g.gbase.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
var t2 = g.gbase.Select<Song>().Where(s => s.Tags.AsSelect().Any(t => t.Name == "国语")).ToSql();
|
||||||
Assert.Equal(@"SELECT a.Id, a.Create_time, a.Is_deleted, a.Title, a.Url
|
Assert.Equal(@"SELECT a.Id, a.Create_time, a.Is_deleted, a.Title, a.Url
|
||||||
FROM Song a
|
FROM Song a
|
||||||
WHERE (exists(SELECT FIRST 1 1
|
WHERE (exists(SELECT 1
|
||||||
FROM Song_tag Mt_Ms
|
FROM Song_tag Mt_Ms
|
||||||
WHERE (Mt_Ms.Song_id = a.Id) AND (exists(SELECT FIRST 1 1
|
WHERE (Mt_Ms.Song_id = a.Id) AND (exists(SELECT 1
|
||||||
FROM Tag t
|
FROM Tag t
|
||||||
WHERE (t.Name = '国语') AND (t.Id = Mt_Ms.Tag_id)))))", t2);
|
WHERE (t.Name = '国语') AND (t.Id = Mt_Ms.Tag_id)))))", t2);
|
||||||
}
|
}
|
||||||
|
@ -35,4 +35,6 @@ public class g
|
|||||||
});
|
});
|
||||||
public static IFreeSql gbase => gbaseLazy.Value;
|
public static IFreeSql gbase => gbaseLazy.Value;
|
||||||
|
|
||||||
|
//su - gbasedbt
|
||||||
|
//oninit -vy
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,7 @@ WHERE (strftime('%Y',a."CreateTime") = 2021)
|
|||||||
|
|
||||||
var d1 = fsql.Select<Users>().Where(r => r.CreateTime.Month == month).ToList();
|
var d1 = fsql.Select<Users>().Where(r => r.CreateTime.Month == month).ToList();
|
||||||
var d2 = fsql.Select<Users>().Where(r => r.CreateTime.Year == year).ToList();
|
var d2 = fsql.Select<Users>().Where(r => r.CreateTime.Year == year).ToList();
|
||||||
var d5 = fsql.Select<Users>().Where(r => r.CreateTime.Year == 2021).ToList();
|
var d5 = fsql.Select<Users>().Where(r => r.CreateTime.Year == 2022).ToList();
|
||||||
|
|
||||||
Assert.Single(dmonth1);
|
Assert.Single(dmonth1);
|
||||||
Assert.Single(d1);
|
Assert.Single(d1);
|
||||||
|
@ -33,7 +33,7 @@ namespace FreeSql.Tests
|
|||||||
{
|
{
|
||||||
is_lock = test.ratio < 1 //这里生成的SQL语句有问题 ratio = 0.9 或 1.9 或 2.1 等等都是生成的是1
|
is_lock = test.ratio < 1 //这里生成的SQL语句有问题 ratio = 0.9 或 1.9 或 2.1 等等都是生成的是1
|
||||||
}).Where(m => test.ratio < 1).ToSql();
|
}).Where(m => test.ratio < 1).ToSql();
|
||||||
Assert.Equal(@"UPDATE TestDto SET is_lock = 2.1 < 1
|
Assert.Equal(@"UPDATE `TestDto` SET `is_lock` = 2.1 < 1
|
||||||
WHERE (2.1 < 1)", sql);
|
WHERE (2.1 < 1)", sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -406,11 +406,6 @@
|
|||||||
按时分表:[Table(Name = "log_{yyyyMMddHH}", AsTable = "create_time=2022-5-1(6 hour)")]<para></para>
|
按时分表:[Table(Name = "log_{yyyyMMddHH}", AsTable = "create_time=2022-5-1(6 hour)")]<para></para>
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.DataAnnotations.IAsTable.AllTables">
|
|
||||||
<summary>
|
|
||||||
所有分表名
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:FreeSql.DataAnnotations.DateTimeAsTableImpl.GetTableNamesBySqlWhere(System.String,System.Collections.Generic.List{System.Data.Common.DbParameter},FreeSql.Internal.Model.SelectTableInfo,FreeSql.Internal.CommonUtils)">
|
<member name="M:FreeSql.DataAnnotations.DateTimeAsTableImpl.GetTableNamesBySqlWhere(System.String,System.Collections.Generic.List{System.Data.Common.DbParameter},FreeSql.Internal.Model.SelectTableInfo,FreeSql.Internal.CommonUtils)">
|
||||||
<summary>
|
<summary>
|
||||||
可以匹配以下条件(支持参数化):<para></para>
|
可以匹配以下条件(支持参数化):<para></para>
|
||||||
|
@ -584,7 +584,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
|
|
||||||
public string ToSqlValuesOrSelectUnionAll(bool isValues = true) => ToSqlValuesOrSelectUnionAllExtension103(isValues, null, null, false);
|
public string ToSqlValuesOrSelectUnionAll(bool isValues = true) => ToSqlValuesOrSelectUnionAllExtension103(isValues, null, null, false);
|
||||||
public string ToSqlValuesOrSelectUnionAllExtension101(bool isValues, Action<object, int, StringBuilder> onrow) => ToSqlValuesOrSelectUnionAllExtension103(isValues, null, onrow, false);
|
public string ToSqlValuesOrSelectUnionAllExtension101(bool isValues, Action<object, int, StringBuilder> onrow) => ToSqlValuesOrSelectUnionAllExtension103(isValues, null, onrow, false);
|
||||||
public string ToSqlValuesOrSelectUnionAllExtension102(bool isValues, Action<object, int, StringBuilder> onrowPre, Action<object, int, StringBuilder> onrow) => ToSqlValuesOrSelectUnionAllExtension103(isValues, null, onrow, false);
|
public string ToSqlValuesOrSelectUnionAllExtension102(bool isValues, Action<object, int, StringBuilder> onrowPre, Action<object, int, StringBuilder> onrow) => ToSqlValuesOrSelectUnionAllExtension103(isValues, onrowPre, onrow, false);
|
||||||
string ToSqlValuesOrSelectUnionAllExtension103(bool isValues, Action<object, int, StringBuilder> onrowPre, Action<object, int, StringBuilder> onrow, bool isAsTableSplited)
|
string ToSqlValuesOrSelectUnionAllExtension103(bool isValues, Action<object, int, StringBuilder> onrowPre, Action<object, int, StringBuilder> onrow, bool isAsTableSplited)
|
||||||
{
|
{
|
||||||
if (_source == null || _source.Any() == false) return null;
|
if (_source == null || _source.Any() == false) return null;
|
||||||
|
@ -21,7 +21,9 @@ namespace FreeSql.ClickHouse
|
|||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(parameterName)) parameterName = $"p_{_params?.Count}";
|
if (string.IsNullOrEmpty(parameterName)) parameterName = $"p_{_params?.Count}";
|
||||||
var dbtype = (DbType?)_orm.CodeFirst.GetDbInfo(type)?.type;
|
var dbtype = (DbType?)_orm.CodeFirst.GetDbInfo(type)?.type;
|
||||||
DbParameter ret = new ClickHouseDbParameter { ParameterName = parameterName, DbType = dbtype ?? default, Value = value };//QuoteParamterName(parameterName)
|
DbParameter ret = new ClickHouseDbParameter { ParameterName = parameterName };//QuoteParamterName(parameterName)
|
||||||
|
if (dbtype != null) ret.DbType = dbtype.Value;
|
||||||
|
ret.Value = value;
|
||||||
if (col != null)
|
if (col != null)
|
||||||
{
|
{
|
||||||
var dbtype2 = (DbType)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeText = col.DbTypeText, DbTypeTextFull = col.Attribute.DbType, MaxLength = col.DbSize });
|
var dbtype2 = (DbType)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeText = col.DbTypeText, DbTypeTextFull = col.Attribute.DbType, MaxLength = col.DbSize });
|
||||||
|
@ -40,7 +40,9 @@ namespace FreeSql.Dameng
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
var ret = new DmParameter { ParameterName = QuoteParamterName(parameterName), DmSqlType = dbtype ?? default, Value = value };
|
var ret = new DmParameter { ParameterName = QuoteParamterName(parameterName) };
|
||||||
|
if (dbtype != null) ret.DmSqlType = dbtype.Value;
|
||||||
|
ret.Value = value;
|
||||||
_params?.Add(ret);
|
_params?.Add(ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ namespace FreeSql.Firebird
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ret.FbDbType = dbtype ?? default;
|
if (dbtype != null) ret.FbDbType = dbtype.Value;
|
||||||
_params?.Add(ret);
|
_params?.Add(ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ namespace FreeSql.GBase
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ret.OdbcType = dbtype ?? default;
|
if (dbtype != null) ret.OdbcType = dbtype.Value;
|
||||||
_params?.Add(ret);
|
_params?.Add(ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,10 @@ namespace FreeSql.MySql
|
|||||||
if (value != null) ret.Value = (value as MygisGeometry).AsText();
|
if (value != null) ret.Value = (value as MygisGeometry).AsText();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ret.MySqlDbType = dbtype ?? default;
|
{
|
||||||
|
if (dbtype != null)
|
||||||
|
ret.MySqlDbType = dbtype.Value;
|
||||||
|
}
|
||||||
_params?.Add(ret);
|
_params?.Add(ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,8 @@ namespace FreeSql.MySql
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ret.MySqlDbType = dbtype ?? default;
|
if (dbtype != null)
|
||||||
|
ret.MySqlDbType = dbtype.Value;
|
||||||
if (ret.MySqlDbType == MySqlDbType.Enum && value != null)
|
if (ret.MySqlDbType == MySqlDbType.Enum && value != null)
|
||||||
ret.Value = EnumValueToMySql(value);
|
ret.Value = EnumValueToMySql(value);
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,9 @@ namespace FreeSql.Odbc.Dameng
|
|||||||
value = string.Concat(value);
|
value = string.Concat(value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
var ret = new OdbcParameter { ParameterName = QuoteParamterName(parameterName), OdbcType = dbtype ?? default, Value = value };
|
var ret = new OdbcParameter { ParameterName = QuoteParamterName(parameterName) };
|
||||||
|
if (dbtype != null) ret.OdbcType = dbtype.Value;
|
||||||
|
ret.Value = value;
|
||||||
_params?.Add(ret);
|
_params?.Add(ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -62,7 +64,9 @@ namespace FreeSql.Odbc.Dameng
|
|||||||
value = string.Concat(value);
|
value = string.Concat(value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
var ret = new OdbcParameter { ParameterName = $":{name}", OdbcType = dbtype ?? default, Value = value };
|
var ret = new OdbcParameter { ParameterName = $":{name}" };
|
||||||
|
if (dbtype != null) ret.OdbcType = dbtype.Value;
|
||||||
|
ret.Value = value;
|
||||||
return ret;
|
return ret;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -18,9 +18,10 @@ namespace FreeSql.Odbc.Default
|
|||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(parameterName)) parameterName = $"p_{_params?.Count}";
|
if (string.IsNullOrEmpty(parameterName)) parameterName = $"p_{_params?.Count}";
|
||||||
if (value?.Equals(DateTime.MinValue) == true) value = new DateTime(1970, 1, 1);
|
if (value?.Equals(DateTime.MinValue) == true) value = new DateTime(1970, 1, 1);
|
||||||
var ret = new OdbcParameter { ParameterName = QuoteParamterName(parameterName), Value = value };
|
var ret = new OdbcParameter { ParameterName = QuoteParamterName(parameterName) };
|
||||||
var tp = _orm.CodeFirst.GetDbInfo(type)?.type;
|
var tp = _orm.CodeFirst.GetDbInfo(type)?.type;
|
||||||
if (tp != null) ret.OdbcType = (OdbcType)tp.Value;
|
if (tp != null) ret.OdbcType = (OdbcType)tp.Value;
|
||||||
|
ret.Value = value;
|
||||||
_params?.Add(ret);
|
_params?.Add(ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -29,9 +30,10 @@ namespace FreeSql.Odbc.Default
|
|||||||
Utils.GetDbParamtersByObject<OdbcParameter>(sql, obj, null, (name, type, value) =>
|
Utils.GetDbParamtersByObject<OdbcParameter>(sql, obj, null, (name, type, value) =>
|
||||||
{
|
{
|
||||||
if (value?.Equals(DateTime.MinValue) == true) value = new DateTime(1970, 1, 1);
|
if (value?.Equals(DateTime.MinValue) == true) value = new DateTime(1970, 1, 1);
|
||||||
var ret = new OdbcParameter { ParameterName = $"@{name}", Value = value };
|
var ret = new OdbcParameter { ParameterName = $"@{name}" };
|
||||||
var tp = _orm.CodeFirst.GetDbInfo(type)?.type;
|
var tp = _orm.CodeFirst.GetDbInfo(type)?.type;
|
||||||
if (tp != null) ret.OdbcType = (OdbcType)tp.Value;
|
if (tp != null) ret.OdbcType = (OdbcType)tp.Value;
|
||||||
|
ret.Value = value;
|
||||||
return ret;
|
return ret;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -18,10 +18,10 @@ namespace FreeSql.Odbc.MySql
|
|||||||
public override DbParameter AppendParamter(List<DbParameter> _params, string parameterName, ColumnInfo col, Type type, object value)
|
public override DbParameter AppendParamter(List<DbParameter> _params, string parameterName, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(parameterName)) parameterName = $"p_{_params?.Count}";
|
if (string.IsNullOrEmpty(parameterName)) parameterName = $"p_{_params?.Count}";
|
||||||
var ret = new OdbcParameter { ParameterName = QuoteParamterName(parameterName), Value = value };
|
var ret = new OdbcParameter { ParameterName = QuoteParamterName(parameterName) };
|
||||||
var tp = _orm.CodeFirst.GetDbInfo(type)?.type;
|
var tp = _orm.CodeFirst.GetDbInfo(type)?.type;
|
||||||
if (tp != null)
|
if (tp != null) ret.OdbcType = (OdbcType)tp.Value;
|
||||||
ret.OdbcType = (OdbcType)tp.Value;
|
ret.Value = value;
|
||||||
_params?.Add(ret);
|
_params?.Add(ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -29,10 +29,10 @@ namespace FreeSql.Odbc.MySql
|
|||||||
public override DbParameter[] GetDbParamtersByObject(string sql, object obj) =>
|
public override DbParameter[] GetDbParamtersByObject(string sql, object obj) =>
|
||||||
Utils.GetDbParamtersByObject<OdbcParameter>(sql, obj, null, (name, type, value) =>
|
Utils.GetDbParamtersByObject<OdbcParameter>(sql, obj, null, (name, type, value) =>
|
||||||
{
|
{
|
||||||
var ret = new OdbcParameter { ParameterName = $"?{name}", Value = value };
|
var ret = new OdbcParameter { ParameterName = $"?{name}" };
|
||||||
var tp = _orm.CodeFirst.GetDbInfo(type)?.type;
|
var tp = _orm.CodeFirst.GetDbInfo(type)?.type;
|
||||||
if (tp != null)
|
if (tp != null) ret.OdbcType = (OdbcType)tp.Value;
|
||||||
ret.OdbcType = (OdbcType)tp.Value;
|
ret.Value = value;
|
||||||
return ret;
|
return ret;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -36,7 +36,9 @@ namespace FreeSql.Odbc.Oracle
|
|||||||
value = string.Concat(value);
|
value = string.Concat(value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
var ret = new OdbcParameter { ParameterName = QuoteParamterName(parameterName), OdbcType = dbtype ?? default, Value = value };
|
var ret = new OdbcParameter { ParameterName = QuoteParamterName(parameterName) };
|
||||||
|
if (dbtype != null) ret.OdbcType = dbtype.Value;
|
||||||
|
ret.Value = value;
|
||||||
_params?.Add(ret);
|
_params?.Add(ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -62,7 +64,9 @@ namespace FreeSql.Odbc.Oracle
|
|||||||
value = string.Concat(value);
|
value = string.Concat(value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
var ret = new OdbcParameter { ParameterName = $":{name}", OdbcType = dbtype ?? default, Value = value };
|
var ret = new OdbcParameter { ParameterName = $":{name}" };
|
||||||
|
if (dbtype != null) ret.OdbcType = dbtype.Value;
|
||||||
|
ret.Value = value;
|
||||||
return ret;
|
return ret;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -41,9 +41,9 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
var sql = sb.ToString();
|
var sql = sb.ToString();
|
||||||
var validx = sql.IndexOf(" WHERE ");
|
var validx = sql.IndexOf(" WHERE ");
|
||||||
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
||||||
sb.Clear().Append(sql.Substring(0, validx))
|
sql = sb.Clear().Append(sql.Substring(0, validx))
|
||||||
.Append(sbret)
|
.Append(sbret)
|
||||||
.Append(sql.Substring(validx));
|
.Append(sql.Substring(validx)).ToString();
|
||||||
|
|
||||||
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
|
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
|
||||||
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
||||||
@ -98,9 +98,9 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
var sql = sb.ToString();
|
var sql = sb.ToString();
|
||||||
var validx = sql.IndexOf(" WHERE ");
|
var validx = sql.IndexOf(" WHERE ");
|
||||||
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
||||||
sb.Clear().Append(sql.Substring(0, validx))
|
sql = sb.Clear().Append(sql.Substring(0, validx))
|
||||||
.Append(sbret)
|
.Append(sbret)
|
||||||
.Append(sql.Substring(validx));
|
.Append(sql.Substring(validx)).ToString();
|
||||||
|
|
||||||
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
|
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
|
||||||
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
||||||
|
@ -45,11 +45,11 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var sql = sb.ToString();
|
var sql = sb.ToString();
|
||||||
var validx = sql.IndexOf(" WHERE ");
|
var validx = sql.IndexOf(" \r\nWHERE ");
|
||||||
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
||||||
sb.Clear().Append(sql.Substring(0, validx))
|
sql = sb.Clear().Append(sql.Substring(0, validx))
|
||||||
.Append(sbret)
|
.Append(sbret)
|
||||||
.Append(sql.Substring(validx));
|
.Append(sql.Substring(validx)).ToString();
|
||||||
|
|
||||||
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
|
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
|
||||||
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
||||||
@ -138,11 +138,11 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var sql = sb.ToString();
|
var sql = sb.ToString();
|
||||||
var validx = sql.IndexOf(" WHERE ");
|
var validx = sql.IndexOf(" \r\nWHERE ");
|
||||||
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
||||||
sb.Clear().Append(sql.Substring(0, validx))
|
sql = sb.Clear().Append(sql.Substring(0, validx))
|
||||||
.Append(sbret)
|
.Append(sbret)
|
||||||
.Append(sql.Substring(validx));
|
.Append(sql.Substring(validx)).ToString();
|
||||||
|
|
||||||
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
|
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
|
||||||
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
||||||
|
@ -25,8 +25,9 @@ namespace FreeSql.Oracle
|
|||||||
else value = (bool)value == true ? 1 : 0;
|
else value = (bool)value == true ? 1 : 0;
|
||||||
dbtype = OracleDbType.Int16;
|
dbtype = OracleDbType.Int16;
|
||||||
}
|
}
|
||||||
var ret = new OracleParameter { ParameterName = QuoteParamterName(parameterName), Value = value };
|
var ret = new OracleParameter { ParameterName = QuoteParamterName(parameterName) };
|
||||||
if (dbtype != null) ret.OracleDbType = dbtype.Value;
|
if (dbtype != null) ret.OracleDbType = dbtype.Value;
|
||||||
|
ret.Value = value;
|
||||||
if (col != null)
|
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 });
|
||||||
@ -63,8 +64,9 @@ namespace FreeSql.Oracle
|
|||||||
else value = (bool)value == true ? 1 : 0;
|
else value = (bool)value == true ? 1 : 0;
|
||||||
dbtype = OracleDbType.Int16;
|
dbtype = OracleDbType.Int16;
|
||||||
}
|
}
|
||||||
var ret = new OracleParameter { ParameterName = $":{name}", Value = value };
|
var ret = new OracleParameter { ParameterName = $":{name}" };
|
||||||
if (dbtype != null) ret.OracleDbType = dbtype.Value;
|
if (dbtype != null) ret.OracleDbType = dbtype.Value;
|
||||||
|
ret.Value = value;
|
||||||
return ret;
|
return ret;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -41,9 +41,9 @@ namespace FreeSql.SqlServer.Curd
|
|||||||
var sql = sb.ToString();
|
var sql = sb.ToString();
|
||||||
var validx = sql.IndexOf(" WHERE ");
|
var validx = sql.IndexOf(" WHERE ");
|
||||||
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
||||||
sb.Clear().Append(sql.Substring(0, validx))
|
sql = sb.Clear().Append(sql.Substring(0, validx))
|
||||||
.Append(sbret)
|
.Append(sbret)
|
||||||
.Append(sql.Substring(validx));
|
.Append(sql.Substring(validx)).ToString();
|
||||||
|
|
||||||
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
|
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
|
||||||
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
||||||
@ -98,9 +98,9 @@ namespace FreeSql.SqlServer.Curd
|
|||||||
var sql = sb.ToString();
|
var sql = sb.ToString();
|
||||||
var validx = sql.IndexOf(" WHERE ");
|
var validx = sql.IndexOf(" WHERE ");
|
||||||
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
||||||
sb.Clear().Append(sql.Substring(0, validx))
|
sql = sb.Clear().Append(sql.Substring(0, validx))
|
||||||
.Append(sbret)
|
.Append(sbret)
|
||||||
.Append(sql.Substring(validx));
|
.Append(sql.Substring(validx)).ToString();
|
||||||
|
|
||||||
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
|
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Delete, sql, dbParms);
|
||||||
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
||||||
|
@ -46,11 +46,11 @@ namespace FreeSql.SqlServer.Curd
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var sql = sb.ToString();
|
var sql = sb.ToString();
|
||||||
var validx = sql.IndexOf(" WHERE ");
|
var validx = sql.IndexOf(" \r\nWHERE ");
|
||||||
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
||||||
sb.Clear().Append(sql.Substring(0, validx))
|
sql = sb.Clear().Append(sql.Substring(0, validx))
|
||||||
.Append(sbret)
|
.Append(sbret)
|
||||||
.Append(sql.Substring(validx));
|
.Append(sql.Substring(validx)).ToString();
|
||||||
|
|
||||||
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
|
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
|
||||||
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
||||||
@ -139,11 +139,11 @@ namespace FreeSql.SqlServer.Curd
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var sql = sb.ToString();
|
var sql = sb.ToString();
|
||||||
var validx = sql.IndexOf(" WHERE ");
|
var validx = sql.IndexOf(" \r\nWHERE ");
|
||||||
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
if (validx == -1) throw new ArgumentException("找不到 WHERE ");
|
||||||
sb.Clear().Append(sql.Substring(0, validx))
|
sql = sb.Clear().Append(sql.Substring(0, validx))
|
||||||
.Append(sbret)
|
.Append(sbret)
|
||||||
.Append(sql.Substring(validx));
|
.Append(sql.Substring(validx)).ToString();
|
||||||
|
|
||||||
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
|
var before = new Aop.CurdBeforeEventArgs(_table.Type, _table, Aop.CurdType.Update, sql, dbParms);
|
||||||
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
|
||||||
|
@ -43,7 +43,7 @@ namespace FreeSql.Sqlite
|
|||||||
var ret = new SQLiteParameter();
|
var ret = new SQLiteParameter();
|
||||||
#endif
|
#endif
|
||||||
ret.ParameterName = QuoteParamterName(parameterName);
|
ret.ParameterName = QuoteParamterName(parameterName);
|
||||||
ret.DbType = dbtype ?? default;
|
if (dbtype != null) ret.DbType = dbtype.Value;
|
||||||
ret.Value = value;
|
ret.Value = value;
|
||||||
_params?.Add(ret);
|
_params?.Add(ret);
|
||||||
return ret;
|
return ret;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user