mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
- 优化 varchar/nvarchar 的 NoneParameter 处理;#519
This commit is contained in:
parent
b701ad8421
commit
639d30fafe
@ -104,6 +104,41 @@
|
|||||||
班期信息
|
班期信息
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:FreeSql.Tests.Issues._519.ST_Stock519.StoreHouse">
|
||||||
|
<summary>
|
||||||
|
库位
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:FreeSql.Tests.Issues._519.ST_Stock519.Works">
|
||||||
|
<summary>
|
||||||
|
工厂
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:FreeSql.Tests.Issues._519.ST_Stock519.MaterialCode">
|
||||||
|
<summary>
|
||||||
|
物料号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:FreeSql.Tests.Issues._519.ST_Stock519.BatchCode">
|
||||||
|
<summary>
|
||||||
|
条码号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:FreeSql.Tests.Issues._519.ST_Stock519.CreatedTime">
|
||||||
|
<summary>
|
||||||
|
创建时间
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:FreeSql.Tests.Issues._519.ST_Stock519.CreatorID">
|
||||||
|
<summary>
|
||||||
|
创建人
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:FreeSql.Tests.Issues._519.ST_Stock519.CreatorName">
|
||||||
|
<summary>
|
||||||
|
创建人名称
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="M:FreeSql.Tests.MySql.MySqlCodeFirstTest.Tb_alltype.Save">
|
<member name="M:FreeSql.Tests.MySql.MySqlCodeFirstTest.Tb_alltype.Save">
|
||||||
<summary>
|
<summary>
|
||||||
保存或添加,如果主键有值则尝试 Update,如果影响的行为 0 则尝试 Insert
|
保存或添加,如果主键有值则尝试 Update,如果影响的行为 0 则尝试 Insert
|
||||||
|
59
FreeSql.Tests/FreeSql.Tests/Issues/518.cs
Normal file
59
FreeSql.Tests/FreeSql.Tests/Issues/518.cs
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
using FreeSql.DataAnnotations;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace FreeSql.Tests.Issues
|
||||||
|
{
|
||||||
|
public class _518
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void SelectTest()
|
||||||
|
{
|
||||||
|
IFreeSql free = g.sqlserver;
|
||||||
|
|
||||||
|
//创建测试数据
|
||||||
|
using (var db = free.CreateDbContext())
|
||||||
|
{
|
||||||
|
db.Set<TestEntity518>().Remove(t => true); //清空旧数据
|
||||||
|
db.SaveChanges();
|
||||||
|
|
||||||
|
//插入三条测试数据
|
||||||
|
db.Add(new TestEntity518() { ID = "A", Name = "张三", Age = 18 });
|
||||||
|
db.Add(new TestEntity518() { ID = "B", Name = "李四", Age = 19 });
|
||||||
|
db.Add(new TestEntity518() { ID = "C", Name = "王五", Age = 20 });
|
||||||
|
db.SaveChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
//开始测试
|
||||||
|
using (var db = free.CreateDbContext())
|
||||||
|
{
|
||||||
|
var entities = db.Set<TestEntity518>().Where(t => true).ToDictionary(t => t.ID);
|
||||||
|
|
||||||
|
entities["A"].Age = 25;
|
||||||
|
db.Update(entities["A"]);
|
||||||
|
|
||||||
|
entities["B"].Age = 26;
|
||||||
|
db.Update(entities["B"]);
|
||||||
|
|
||||||
|
entities["C"].Age = 27;
|
||||||
|
//entities["C"].Name = "王五5"; //注释掉这一行就不会报错
|
||||||
|
db.Update(entities["C"]);
|
||||||
|
|
||||||
|
db.Add(new TestEntity518() { ID = "D", Name = "马六", Age = 30 });
|
||||||
|
|
||||||
|
db.SaveChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class TestEntity518
|
||||||
|
{
|
||||||
|
public string ID { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public int Age { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
72
FreeSql.Tests/FreeSql.Tests/Issues/519.cs
Normal file
72
FreeSql.Tests/FreeSql.Tests/Issues/519.cs
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
using FreeSql.DataAnnotations;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace FreeSql.Tests.Issues
|
||||||
|
{
|
||||||
|
public class _519
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void SelectTest()
|
||||||
|
{
|
||||||
|
IFreeSql fsql = g.sqlserver;
|
||||||
|
|
||||||
|
fsql.Delete<ST_Stock519>().Where("1=1").ExecuteAffrows();
|
||||||
|
fsql.Insert(new[]
|
||||||
|
{
|
||||||
|
new ST_Stock519 { StoreHouse = "001", Works = "101", MaterialCode = "201", BatchCode = "301", CreatedTime = DateTime.Now },
|
||||||
|
new ST_Stock519 { StoreHouse = "002", Works = "102", MaterialCode = "202", BatchCode = "302", CreatedTime = DateTime.Now },
|
||||||
|
new ST_Stock519 { StoreHouse = "003", Works = "103", MaterialCode = "203", BatchCode = "303", CreatedTime = DateTime.Now }
|
||||||
|
}).ExecuteAffrows();
|
||||||
|
|
||||||
|
var list = fsql.Select<ST_Stock519>().ToList();
|
||||||
|
var sql1 = fsql.Insert(list).NoneParameter().ToSql();
|
||||||
|
var sql2 = fsql.Update<ST_Stock519>().SetSource(list).NoneParameter().ToSql();
|
||||||
|
var sql3 = fsql.InsertOrUpdate<ST_Stock519>().SetSource(list).ToSql();
|
||||||
|
}
|
||||||
|
class ST_Stock519
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 库位
|
||||||
|
/// </summary>
|
||||||
|
[Column(IsPrimary = true, DbType = "varchar(50)")]
|
||||||
|
public string StoreHouse { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 工厂
|
||||||
|
/// </summary>
|
||||||
|
[Column(IsPrimary = true, DbType = "varchar(50)")]
|
||||||
|
public string Works { get; set; } = string.Empty;
|
||||||
|
/// <summary>
|
||||||
|
/// 物料号
|
||||||
|
/// </summary>
|
||||||
|
[Column(IsPrimary = true, DbType = "varchar(50)")]
|
||||||
|
public string MaterialCode { get; set; } = string.Empty;
|
||||||
|
/// <summary>
|
||||||
|
/// 条码号
|
||||||
|
/// </summary>
|
||||||
|
[Column(IsPrimary = true, DbType = "varchar(50)")]
|
||||||
|
public string BatchCode { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? CreatedTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建人
|
||||||
|
/// </summary>
|
||||||
|
public string CreatorID { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建人名称
|
||||||
|
/// </summary>
|
||||||
|
public string CreatorName { get; set; } = string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -166,7 +166,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
object val = col.GetDbValue(d);
|
object val = col.GetDbValue(d);
|
||||||
sb.Append(_commonUtils.GetNoneParamaterSqlValue(dbParams, "cu", col.Attribute.MapType, val));
|
sb.Append(_commonUtils.GetNoneParamaterSqlValue(dbParams, "cu", col, col.Attribute.MapType, val));
|
||||||
}
|
}
|
||||||
if (didx == 0) sb.Append(" as ").Append(col.Attribute.Name);
|
if (didx == 0) sb.Append(" as ").Append(col.Attribute.Name);
|
||||||
++colidx2;
|
++colidx2;
|
||||||
|
@ -571,7 +571,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
object val = col.GetDbValue(d);
|
object val = col.GetDbValue(d);
|
||||||
if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
|
if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
|
||||||
if (_noneParameter)
|
if (_noneParameter)
|
||||||
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, _noneParameterFlag, col.Attribute.MapType, val));
|
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, _noneParameterFlag, col, col.Attribute.MapType, val));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"{col.CsName}_{didx}")));
|
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"{col.CsName}_{didx}")));
|
||||||
|
@ -427,7 +427,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
_set.Append(", ").Append(_commonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ");
|
_set.Append(", ").Append(_commonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ");
|
||||||
if (_noneParameter)
|
if (_noneParameter)
|
||||||
{
|
{
|
||||||
_set.Append(_commonUtils.GetNoneParamaterSqlValue(_params, "u", col.Attribute.MapType, val));
|
_set.Append(_commonUtils.GetNoneParamaterSqlValue(_params, "u", col, col.Attribute.MapType, val));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -588,7 +588,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
|
|
||||||
sb.Append(_commonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ");
|
sb.Append(_commonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ");
|
||||||
sb.Append(thenValue(_commonUtils.GetNoneParamaterSqlValue(_paramsSource, "u", col.Attribute.MapType, col.GetDbValue(_source.First()))));
|
sb.Append(thenValue(_commonUtils.GetNoneParamaterSqlValue(_paramsSource, "u", col, col.Attribute.MapType, col.GetDbValue(_source.First()))));
|
||||||
|
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
|
|
||||||
@ -612,7 +612,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
ToSqlWhen(cwsb, _table.Primarys, d);
|
ToSqlWhen(cwsb, _table.Primarys, d);
|
||||||
cwsb.Append(" THEN ");
|
cwsb.Append(" THEN ");
|
||||||
var val = col.GetDbValue(d);
|
var val = col.GetDbValue(d);
|
||||||
cwsb.Append(thenValue(_commonUtils.GetNoneParamaterSqlValue(_paramsSource, "u", col.Attribute.MapType, val)));
|
cwsb.Append(thenValue(_commonUtils.GetNoneParamaterSqlValue(_paramsSource, "u", col, col.Attribute.MapType, val)));
|
||||||
if (val == null || val == DBNull.Value) nulls++;
|
if (val == null || val == DBNull.Value) nulls++;
|
||||||
}
|
}
|
||||||
cwsb.Append(" END");
|
cwsb.Append(" END");
|
||||||
@ -685,7 +685,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
{
|
{
|
||||||
var val = col.GetDbValue(_source.First());
|
var val = col.GetDbValue(_source.First());
|
||||||
if (_noneParameter)
|
if (_noneParameter)
|
||||||
sb.Append(_commonUtils.GetNoneParamaterSqlValue(_paramsSource, "u", col.Attribute.MapType, val));
|
sb.Append(_commonUtils.GetNoneParamaterSqlValue(_paramsSource, "u", col, col.Attribute.MapType, val));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"p_{_paramsSource.Count}")));
|
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"p_{_paramsSource.Count}")));
|
||||||
@ -730,7 +730,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
cwsb.Append(" THEN ");
|
cwsb.Append(" THEN ");
|
||||||
var val = col.GetDbValue(d);
|
var val = col.GetDbValue(d);
|
||||||
if (_noneParameter)
|
if (_noneParameter)
|
||||||
cwsb.Append(_commonUtils.GetNoneParamaterSqlValue(_paramsSource, "u", col.Attribute.MapType, val));
|
cwsb.Append(_commonUtils.GetNoneParamaterSqlValue(_paramsSource, "u", col, col.Attribute.MapType, val));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cwsb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"p_{_paramsSource.Count}")));
|
cwsb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"p_{_paramsSource.Count}")));
|
||||||
|
@ -23,7 +23,7 @@ namespace FreeSql.Internal
|
|||||||
public abstract class CommonUtils
|
public abstract class CommonUtils
|
||||||
{
|
{
|
||||||
|
|
||||||
public abstract string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value);
|
public abstract string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value);
|
||||||
public abstract DbParameter AppendParamter(List<DbParameter> _params, string parameterName, ColumnInfo col, Type type, object value);
|
public abstract DbParameter AppendParamter(List<DbParameter> _params, string parameterName, ColumnInfo col, Type type, object value);
|
||||||
public abstract DbParameter[] GetDbParamtersByObject(string sql, object obj);
|
public abstract DbParameter[] GetDbParamtersByObject(string sql, object obj);
|
||||||
public abstract string FormatSql(string sql, params object[] args);
|
public abstract string FormatSql(string sql, params object[] args);
|
||||||
@ -267,7 +267,7 @@ namespace FreeSql.Internal
|
|||||||
var pk1 = primarys.FirstOrDefault();
|
var pk1 = primarys.FirstOrDefault();
|
||||||
if (primarys.Length == 1 && (type == pk1.CsType || type.IsNumberType() && pk1.CsType.IsNumberType()))
|
if (primarys.Length == 1 && (type == pk1.CsType || type.IsNumberType() && pk1.CsType.IsNumberType()))
|
||||||
{
|
{
|
||||||
return $"{aliasAndDot}{this.QuoteSqlName(pk1.Attribute.Name)} = {this.FormatSql("{0}", Utils.GetDataReaderValue(pk1.Attribute.MapType, dywhere))}";
|
return $"{aliasAndDot}{this.QuoteSqlName(pk1.Attribute.Name)} = {GetNoneParamaterSqlValue(null, null, pk1, pk1.Attribute.MapType, Utils.GetDataReaderValue(pk1.Attribute.MapType, dywhere))}";
|
||||||
}
|
}
|
||||||
else if (primarys.Length > 0 && (type == table.Type || type.BaseType == table.Type))
|
else if (primarys.Length > 0 && (type == table.Type || type.BaseType == table.Type))
|
||||||
{
|
{
|
||||||
@ -276,15 +276,15 @@ namespace FreeSql.Internal
|
|||||||
foreach (var pk in primarys)
|
foreach (var pk in primarys)
|
||||||
{
|
{
|
||||||
if (pkidx > 0) sb.Append(" AND ");
|
if (pkidx > 0) sb.Append(" AND ");
|
||||||
sb.Append(aliasAndDot).Append(this.QuoteSqlName(pk.Attribute.Name));
|
sb.Append(aliasAndDot).Append(this.QuoteSqlName(pk.Attribute.Name)).Append(" = ");
|
||||||
sb.Append(this.FormatSql(" = {0}", pk.GetDbValue(dywhere)));
|
sb.Append(GetNoneParamaterSqlValue(null, null, pk, pk.Attribute.MapType, pk.GetDbValue(dywhere)));
|
||||||
++pkidx;
|
++pkidx;
|
||||||
}
|
}
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
else if (primarys.Length == 1 && type == typeof(string))
|
else if (primarys.Length == 1 && type == typeof(string))
|
||||||
{
|
{
|
||||||
return $"{aliasAndDot}{this.QuoteSqlName(pk1.Attribute.Name)} = {this.FormatSql("{0}", Utils.GetDataReaderValue(pk1.Attribute.MapType, dywhere))}";
|
return $"{aliasAndDot}{this.QuoteSqlName(pk1.Attribute.Name)} = {GetNoneParamaterSqlValue(null, null, pk1, pk1.Attribute.MapType, Utils.GetDataReaderValue(pk1.Attribute.MapType, dywhere))}";
|
||||||
}
|
}
|
||||||
else if (primarys.Length == 1 && dywhere is IEnumerable)
|
else if (primarys.Length == 1 && dywhere is IEnumerable)
|
||||||
{
|
{
|
||||||
@ -303,8 +303,8 @@ namespace FreeSql.Internal
|
|||||||
var itype = i.GetType();
|
var itype = i.GetType();
|
||||||
isEntityType = (itype == table.Type || itype.BaseType == table.Type);
|
isEntityType = (itype == table.Type || itype.BaseType == table.Type);
|
||||||
}
|
}
|
||||||
if (isEntityType) sb.Append(this.FormatSql("{0}", primarys[0].GetDbValue(i)));
|
if (isEntityType) sb.Append(GetNoneParamaterSqlValue(null, null, primarys[0], primarys[0].Attribute.MapType, primarys[0].GetDbValue(i)));
|
||||||
else sb.Append(this.FormatSql("{0}", Utils.GetDataReaderValue(pk1.Attribute.MapType, i)));
|
else sb.Append(GetNoneParamaterSqlValue(null, null, pk1, pk1.Attribute.MapType, Utils.GetDataReaderValue(pk1.Attribute.MapType, i)));
|
||||||
++ieidx;
|
++ieidx;
|
||||||
}
|
}
|
||||||
if (isAny == false) return "";
|
if (isAny == false) return "";
|
||||||
@ -338,8 +338,8 @@ namespace FreeSql.Internal
|
|||||||
if (trycol == null) continue;
|
if (trycol == null) continue;
|
||||||
|
|
||||||
if (psidx > 0) sb.Append(" AND ");
|
if (psidx > 0) sb.Append(" AND ");
|
||||||
sb.Append(aliasAndDot).Append(this.QuoteSqlName(trycol.Attribute.Name));
|
sb.Append(aliasAndDot).Append(this.QuoteSqlName(trycol.Attribute.Name)).Append(" = ");
|
||||||
sb.Append(this.FormatSql(" = {0}", Utils.GetDataReaderValue(trycol.Attribute.MapType, p.GetValue(dywhere, null))));
|
sb.Append(GetNoneParamaterSqlValue(null, null, trycol, trycol.Attribute.MapType, Utils.GetDataReaderValue(trycol.Attribute.MapType, p.GetValue(dywhere, null))));
|
||||||
++psidx;
|
++psidx;
|
||||||
}
|
}
|
||||||
if (psidx == 0) return "";
|
if (psidx == 0) return "";
|
||||||
@ -360,8 +360,8 @@ namespace FreeSql.Internal
|
|||||||
sbin.Append(aliasAndDot).Append(this.QuoteSqlName(pk1.Attribute.Name));
|
sbin.Append(aliasAndDot).Append(this.QuoteSqlName(pk1.Attribute.Name));
|
||||||
var indt = its.Select(a => pk1.GetDbValue(a)).Where(a => a != null).ToArray();
|
var indt = its.Select(a => pk1.GetDbValue(a)).Where(a => a != null).ToArray();
|
||||||
if (indt.Any() == false) return null;
|
if (indt.Any() == false) return null;
|
||||||
if (indt.Length == 1) sbin.Append(" = ").Append(this.FormatSql("{0}", indt.First()));
|
if (indt.Length == 1) sbin.Append(" = ").Append(GetNoneParamaterSqlValue(null, null, pk1, pk1.Attribute.MapType, indt.First()));
|
||||||
else sbin.Append(" IN (").Append(string.Join(",", indt.Select(a => this.FormatSql("{0}", a)))).Append(")");
|
else sbin.Append(" IN (").Append(string.Join(",", indt.Select(a => GetNoneParamaterSqlValue(null, null, pk1, pk1.Attribute.MapType, a)))).Append(")");
|
||||||
return sbin.ToString();
|
return sbin.ToString();
|
||||||
}
|
}
|
||||||
var dicpk = its.Length > 5 ? new Dictionary<string, bool>() : null;
|
var dicpk = its.Length > 5 ? new Dictionary<string, bool>() : null;
|
||||||
@ -371,7 +371,7 @@ namespace FreeSql.Internal
|
|||||||
{
|
{
|
||||||
var filter = "";
|
var filter = "";
|
||||||
foreach (var pk in table.Primarys)
|
foreach (var pk in table.Primarys)
|
||||||
filter += $" AND {aliasAndDot}{this.QuoteSqlName(pk.Attribute.Name)} = {this.FormatSql("{0}", pk.GetDbValue(item))}";
|
filter += $" AND {aliasAndDot}{this.QuoteSqlName(pk.Attribute.Name)} = {GetNoneParamaterSqlValue(null, null, pk, pk.Attribute.MapType, pk.GetDbValue(item))}";
|
||||||
if (string.IsNullOrEmpty(filter)) continue;
|
if (string.IsNullOrEmpty(filter)) continue;
|
||||||
if (sb != null)
|
if (sb != null)
|
||||||
{
|
{
|
||||||
|
@ -187,7 +187,7 @@ namespace FreeSql.Internal
|
|||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
col.DbDefaultValue = common.GetNoneParamaterSqlValue(new List<DbParameter>(), "init", colattr.MapType, defaultValue);
|
col.DbDefaultValue = common.GetNoneParamaterSqlValue(new List<DbParameter>(), "init", col, colattr.MapType, defaultValue);
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
|
@ -69,7 +69,7 @@ namespace FreeSql.Dameng.Curd
|
|||||||
object val = col.GetDbValue(d);
|
object val = col.GetDbValue(d);
|
||||||
if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
|
if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
|
||||||
if (_noneParameter)
|
if (_noneParameter)
|
||||||
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, _noneParameterFlag, col.Attribute.MapType, val));
|
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, _noneParameterFlag, col, col.Attribute.MapType, val));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"{col.CsName}_{didx}")));
|
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"{col.CsName}_{didx}")));
|
||||||
|
@ -93,7 +93,7 @@ namespace FreeSql.Dameng
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
|
@ -82,7 +82,7 @@ namespace FreeSql.Firebird
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
|
@ -124,7 +124,7 @@ namespace FreeSql.KingbaseES
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
@ -146,7 +146,7 @@ namespace FreeSql.KingbaseES
|
|||||||
{
|
{
|
||||||
var item = valueArr.GetValue(a);
|
var item = valueArr.GetValue(a);
|
||||||
if (a > 0) sb.Append(",");
|
if (a > 0) sb.Append(",");
|
||||||
sb.Append(GetNoneParamaterSqlValue(specialParams, specialParamFlag, eleType, item));
|
sb.Append(GetNoneParamaterSqlValue(specialParams, specialParamFlag, col, eleType, item));
|
||||||
}
|
}
|
||||||
sb.Append("]");
|
sb.Append("]");
|
||||||
var dbinfo = _orm.CodeFirst.GetDbInfo(type);
|
var dbinfo = _orm.CodeFirst.GetDbInfo(type);
|
||||||
|
@ -82,7 +82,7 @@ namespace FreeSql.MsAccess
|
|||||||
public override string FieldAsAlias(string alias) => $" as {alias}";
|
public override string FieldAsAlias(string alias) => $" as {alias}";
|
||||||
public override string IIF(string test, string ifTrue, string ifElse) => $"iif({test}, {ifTrue}, {ifElse})";
|
public override string IIF(string test, string ifTrue, string ifElse) => $"iif({test}, {ifTrue}, {ifElse})";
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
|
@ -126,7 +126,7 @@ namespace FreeSql.MySql
|
|||||||
return columnName;
|
return columnName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
|
@ -146,7 +146,7 @@ namespace FreeSql.MySql
|
|||||||
return columnName;
|
return columnName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
|
@ -69,7 +69,7 @@ namespace FreeSql.Odbc.Dameng
|
|||||||
object val = col.GetDbValue(d);
|
object val = col.GetDbValue(d);
|
||||||
if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
|
if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
|
||||||
if (_noneParameter)
|
if (_noneParameter)
|
||||||
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, _noneParameterFlag, col.Attribute.MapType, val));
|
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, _noneParameterFlag, col, col.Attribute.MapType, val));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"{col.CsName}_{didx}")));
|
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"{col.CsName}_{didx}")));
|
||||||
|
@ -99,7 +99,7 @@ namespace FreeSql.Odbc.Dameng
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
|
@ -69,7 +69,7 @@ namespace FreeSql.Odbc.Default
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => Adapter.FieldSql(type, columnName);
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => Adapter.FieldSql(type, columnName);
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
|
@ -123,7 +123,7 @@ namespace FreeSql.Odbc.KingbaseES
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
@ -145,7 +145,7 @@ namespace FreeSql.Odbc.KingbaseES
|
|||||||
{
|
{
|
||||||
var item = valueArr.GetValue(a);
|
var item = valueArr.GetValue(a);
|
||||||
if (a > 0) sb.Append(",");
|
if (a > 0) sb.Append(",");
|
||||||
sb.Append(GetNoneParamaterSqlValue(specialParams, specialParamFlag, eleType, item));
|
sb.Append(GetNoneParamaterSqlValue(specialParams, specialParamFlag, col, eleType, item));
|
||||||
}
|
}
|
||||||
sb.Append("]");
|
sb.Append("]");
|
||||||
var dbinfo = _orm.CodeFirst.GetDbInfo(type);
|
var dbinfo = _orm.CodeFirst.GetDbInfo(type);
|
||||||
|
@ -93,7 +93,7 @@ namespace FreeSql.Odbc.MySql
|
|||||||
return columnName;
|
return columnName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
|
@ -69,7 +69,7 @@ namespace FreeSql.Odbc.Oracle
|
|||||||
object val = col.GetDbValue(d);
|
object val = col.GetDbValue(d);
|
||||||
if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
|
if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
|
||||||
if (_noneParameter)
|
if (_noneParameter)
|
||||||
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, _noneParameterFlag, col.Attribute.MapType, val));
|
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, _noneParameterFlag, col, col.Attribute.MapType, val));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"{col.CsName}_{didx}")));
|
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"{col.CsName}_{didx}")));
|
||||||
|
@ -99,7 +99,7 @@ namespace FreeSql.Odbc.Oracle
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
|
@ -123,7 +123,7 @@ namespace FreeSql.Odbc.PostgreSQL
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
@ -145,7 +145,7 @@ namespace FreeSql.Odbc.PostgreSQL
|
|||||||
{
|
{
|
||||||
var item = valueArr.GetValue(a);
|
var item = valueArr.GetValue(a);
|
||||||
if (a > 0) sb.Append(",");
|
if (a > 0) sb.Append(",");
|
||||||
sb.Append(GetNoneParamaterSqlValue(specialParams, specialParamFlag, eleType, item));
|
sb.Append(GetNoneParamaterSqlValue(specialParams, specialParamFlag, col, eleType, item));
|
||||||
}
|
}
|
||||||
sb.Append("]");
|
sb.Append("]");
|
||||||
var dbinfo = _orm.CodeFirst.GetDbInfo(type);
|
var dbinfo = _orm.CodeFirst.GetDbInfo(type);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using FreeSql.Internal;
|
using FreeSql.Internal;
|
||||||
|
using FreeSql.Internal.CommonProvider;
|
||||||
using FreeSql.Internal.Model;
|
using FreeSql.Internal.Model;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -86,7 +87,7 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
@ -96,7 +97,7 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
var ts = (TimeSpan)value;
|
var ts = (TimeSpan)value;
|
||||||
value = $"{ts.Hours}:{ts.Minutes}:{ts.Seconds}.{ts.Milliseconds}";
|
value = $"{ts.Hours}:{ts.Minutes}:{ts.Seconds}.{ts.Milliseconds}";
|
||||||
}
|
}
|
||||||
return FormatSql("{0}", value, 1);
|
return string.Format(CultureInfo.InvariantCulture, "{0}", (_orm.Ado as AdoProvider).AddslashesProcessParam(value, type, col));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,7 @@ namespace FreeSql.Oracle.Curd
|
|||||||
object val = col.GetDbValue(d);
|
object val = col.GetDbValue(d);
|
||||||
if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
|
if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
|
||||||
if (_noneParameter)
|
if (_noneParameter)
|
||||||
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, _noneParameterFlag, col.Attribute.MapType, val));
|
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, _noneParameterFlag, col, col.Attribute.MapType, val));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"{col.CsName}_{didx}")));
|
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"{col.CsName}_{didx}")));
|
||||||
@ -143,7 +143,7 @@ namespace FreeSql.Oracle.Curd
|
|||||||
object val = col.GetDbValue(d);
|
object val = col.GetDbValue(d);
|
||||||
if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
|
if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
|
||||||
if (_noneParameter)
|
if (_noneParameter)
|
||||||
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, _noneParameterFlag, col.Attribute.MapType, val));
|
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, _noneParameterFlag, col, col.Attribute.MapType, val));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"{col.CsName}_{didx}")));
|
sb.Append(_commonUtils.QuoteWriteParamter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"{col.CsName}_{didx}")));
|
||||||
|
@ -98,7 +98,7 @@ namespace FreeSql.Oracle
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
|
@ -163,7 +163,7 @@ namespace FreeSql.PostgreSQL
|
|||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
static ConcurrentDictionary<Type, bool> _dicIsAssignableFromPostgisGeometry = new ConcurrentDictionary<Type, bool>();
|
static ConcurrentDictionary<Type, bool> _dicIsAssignableFromPostgisGeometry = new ConcurrentDictionary<Type, bool>();
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
@ -199,7 +199,7 @@ namespace FreeSql.PostgreSQL
|
|||||||
{
|
{
|
||||||
var item = valueArr.GetValue(a);
|
var item = valueArr.GetValue(a);
|
||||||
if (a > 0) sb.Append(",");
|
if (a > 0) sb.Append(",");
|
||||||
sb.Append(GetNoneParamaterSqlValue(specialParams, specialParamFlag, eleType, item));
|
sb.Append(GetNoneParamaterSqlValue(specialParams, specialParamFlag, col, eleType, item));
|
||||||
}
|
}
|
||||||
sb.Append("]");
|
sb.Append("]");
|
||||||
var dbinfo = _orm.CodeFirst.GetDbInfo(type);
|
var dbinfo = _orm.CodeFirst.GetDbInfo(type);
|
||||||
|
@ -137,7 +137,7 @@ namespace FreeSql.ShenTong
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
@ -161,7 +161,7 @@ namespace FreeSql.ShenTong
|
|||||||
{
|
{
|
||||||
var item = valueArr.GetValue(a);
|
var item = valueArr.GetValue(a);
|
||||||
if (a > 0) sb.Append(",");
|
if (a > 0) sb.Append(",");
|
||||||
sb.Append(GetNoneParamaterSqlValue(specialParams, specialParamFlag, eleType, item));
|
sb.Append(GetNoneParamaterSqlValue(specialParams, specialParamFlag, col, eleType, item));
|
||||||
}
|
}
|
||||||
sb.Append("]");
|
sb.Append("]");
|
||||||
var dbinfo = _orm.CodeFirst.GetDbInfo(type);
|
var dbinfo = _orm.CodeFirst.GetDbInfo(type);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using FreeSql.Internal;
|
using FreeSql.Internal;
|
||||||
|
using FreeSql.Internal.CommonProvider;
|
||||||
using FreeSql.Internal.Model;
|
using FreeSql.Internal.Model;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -102,7 +103,7 @@ namespace FreeSql.SqlServer
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
@ -112,7 +113,7 @@ namespace FreeSql.SqlServer
|
|||||||
var ts = (TimeSpan)value;
|
var ts = (TimeSpan)value;
|
||||||
value = $"{ts.Hours}:{ts.Minutes}:{ts.Seconds}.{ts.Milliseconds}";
|
value = $"{ts.Hours}:{ts.Minutes}:{ts.Seconds}.{ts.Milliseconds}";
|
||||||
}
|
}
|
||||||
return FormatSql("{0}", value, 1);
|
return string.Format(CultureInfo.InvariantCulture, "{0}", (_orm.Ado as AdoProvider).AddslashesProcessParam(value, type, col));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ namespace FreeSql.Sqlite
|
|||||||
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
public override string QuoteWriteParamter(Type type, string paramterName) => paramterName;
|
||||||
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
public override string QuoteReadColumn(Type type, Type mapType, string columnName) => columnName;
|
||||||
|
|
||||||
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, Type type, object value)
|
public override string GetNoneParamaterSqlValue(List<DbParameter> specialParams, string specialParamFlag, ColumnInfo col, Type type, object value)
|
||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user