From 0ffea2b871caf181471ebf7cf10459d9d7b2547f Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Thu, 30 Apr 2020 12:06:19 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20=E6=B5=AE=E7=82=B9?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=20NoneParameter=20=E4=B8=8D=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=A7=91=E5=AD=A6=E5=AD=97=E7=AC=A6=E4=B8=B2=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/FreeSql.DbContext.xml | 9 --------- FreeSql.Tests/FreeSql.Tests/UnitTest1.cs | 6 ++++++ Providers/FreeSql.Provider.Dameng/DamengUtils.cs | 2 ++ Providers/FreeSql.Provider.MsAccess/MsAccessUtils.cs | 2 ++ Providers/FreeSql.Provider.MySql/MySqlUtils.cs | 2 ++ .../MySqlConnectorUtils.cs | 2 ++ .../FreeSql.Provider.Odbc/Dameng/OdbcDamengUtils.cs | 2 ++ Providers/FreeSql.Provider.Odbc/Default/OdbcUtils.cs | 2 ++ Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlUtils.cs | 2 ++ .../FreeSql.Provider.Odbc/Oracle/OdbcOracleUtils.cs | 2 ++ .../PostgreSQL/OdbcPostgreSQLUtils.cs | 2 ++ .../SqlServer/OdbcSqlServerUtils.cs | 2 ++ Providers/FreeSql.Provider.Oracle/OracleUtils.cs | 2 ++ Providers/FreeSql.Provider.PostgreSQL/PostgreSQLUtils.cs | 2 ++ Providers/FreeSql.Provider.SqlServer/SqlServerUtils.cs | 2 ++ Providers/FreeSql.Provider.Sqlite/SqliteUtils.cs | 2 ++ 16 files changed, 34 insertions(+), 9 deletions(-) diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 4854f49c..474ea8d5 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -486,14 +486,5 @@ - - - 批量注入 Repository,可以参考代码自行调整 - - - - - - diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs index d300dc9c..2c5357c4 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs @@ -675,6 +675,12 @@ namespace FreeSql.Tests subquery = g.sqlite.Select().Where(b => b.Id == a.Id).First(b => b.Group) }); + var sklgjlskdg12 = g.sqlite.Select() + .Where(a => g.sqlite.Select().Any(b => b.MemberId == a.MemberId)) + .ToUpdate() + .Set(a => a.Phone, "123123") + .ToSql(); + var sklgjlskdg = g.sqlite.Select() .Where(a => a.CheckupGroups.AsSelect().Any()) .ToSql(); diff --git a/Providers/FreeSql.Provider.Dameng/DamengUtils.cs b/Providers/FreeSql.Provider.Dameng/DamengUtils.cs index e6c67977..2044411d 100644 --- a/Providers/FreeSql.Provider.Dameng/DamengUtils.cs +++ b/Providers/FreeSql.Provider.Dameng/DamengUtils.cs @@ -4,6 +4,7 @@ using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Data.Common; +using System.Globalization; namespace FreeSql.Dameng { @@ -95,6 +96,7 @@ namespace FreeSql.Dameng public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); if (type == typeof(byte[])) return $"hextoraw('{CommonUtils.BytesSqlRaw(value as byte[])}')"; return FormatSql("{0}", value, 1); } diff --git a/Providers/FreeSql.Provider.MsAccess/MsAccessUtils.cs b/Providers/FreeSql.Provider.MsAccess/MsAccessUtils.cs index 31c9b7a1..2002a9a9 100644 --- a/Providers/FreeSql.Provider.MsAccess/MsAccessUtils.cs +++ b/Providers/FreeSql.Provider.MsAccess/MsAccessUtils.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Data.Common; using System.Data.OleDb; +using System.Globalization; using System.Text; namespace FreeSql.MsAccess @@ -84,6 +85,7 @@ namespace FreeSql.MsAccess public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); if (type == typeof(byte[])) return $"0x{CommonUtils.BytesSqlRaw(value as byte[])}"; if (type == typeof(TimeSpan) || type == typeof(TimeSpan?)) { diff --git a/Providers/FreeSql.Provider.MySql/MySqlUtils.cs b/Providers/FreeSql.Provider.MySql/MySqlUtils.cs index 3da98012..fdce7b48 100644 --- a/Providers/FreeSql.Provider.MySql/MySqlUtils.cs +++ b/Providers/FreeSql.Provider.MySql/MySqlUtils.cs @@ -4,6 +4,7 @@ using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Data.Common; +using System.Globalization; namespace FreeSql.MySql { @@ -124,6 +125,7 @@ namespace FreeSql.MySql public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); if (type == typeof(byte[])) return $"0x{CommonUtils.BytesSqlRaw(value as byte[])}"; if (type == typeof(TimeSpan) || type == typeof(TimeSpan?)) { diff --git a/Providers/FreeSql.Provider.MySqlConnector/MySqlConnectorUtils.cs b/Providers/FreeSql.Provider.MySqlConnector/MySqlConnectorUtils.cs index 83032db7..3cf35322 100644 --- a/Providers/FreeSql.Provider.MySqlConnector/MySqlConnectorUtils.cs +++ b/Providers/FreeSql.Provider.MySqlConnector/MySqlConnectorUtils.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Collections.Concurrent; using System.Data.Common; +using System.Globalization; namespace FreeSql.MySql { @@ -148,6 +149,7 @@ namespace FreeSql.MySql public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); if (type == typeof(byte[])) return $"0x{CommonUtils.BytesSqlRaw(value as byte[])}"; if (type == typeof(TimeSpan) || type == typeof(TimeSpan?)) { diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengUtils.cs b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengUtils.cs index dd066373..7e619a96 100644 --- a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengUtils.cs +++ b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengUtils.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Data.Common; using System.Data.Odbc; +using System.Globalization; namespace FreeSql.Odbc.Dameng { @@ -101,6 +102,7 @@ namespace FreeSql.Odbc.Dameng public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); if (type == typeof(byte[])) return $"hextoraw('{CommonUtils.BytesSqlRaw(value as byte[])}')"; return FormatSql("{0}", value, 1); } diff --git a/Providers/FreeSql.Provider.Odbc/Default/OdbcUtils.cs b/Providers/FreeSql.Provider.Odbc/Default/OdbcUtils.cs index c3a64399..b9eb9dad 100644 --- a/Providers/FreeSql.Provider.Odbc/Default/OdbcUtils.cs +++ b/Providers/FreeSql.Provider.Odbc/Default/OdbcUtils.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Data.Common; using System.Data.Odbc; +using System.Globalization; namespace FreeSql.Odbc.Default { @@ -71,6 +72,7 @@ namespace FreeSql.Odbc.Default public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); if (type == typeof(byte[])) return Adapter.ByteRawSql(value); return FormatSql("{0}", value, 1); } diff --git a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlUtils.cs b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlUtils.cs index 50f45dbf..3cd1bb86 100644 --- a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlUtils.cs +++ b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlUtils.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Data.Common; using System.Data.Odbc; +using System.Globalization; namespace FreeSql.Odbc.MySql { @@ -95,6 +96,7 @@ namespace FreeSql.Odbc.MySql public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); if (type == typeof(byte[])) return $"0x{CommonUtils.BytesSqlRaw(value as byte[])}"; if (type == typeof(TimeSpan) || type == typeof(TimeSpan?)) { diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleUtils.cs b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleUtils.cs index 9054c31b..e692fac8 100644 --- a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleUtils.cs +++ b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleUtils.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Data.Common; using System.Data.Odbc; +using System.Globalization; namespace FreeSql.Odbc.Oracle { @@ -101,6 +102,7 @@ namespace FreeSql.Odbc.Oracle public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); if (type == typeof(byte[])) return $"hextoraw('{CommonUtils.BytesSqlRaw(value as byte[])}')"; return FormatSql("{0}", value, 1); } diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLUtils.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLUtils.cs index 7fab4eda..9b582199 100644 --- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLUtils.cs +++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLUtils.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Data.Common; using System.Data.Odbc; +using System.Globalization; using System.Linq; using System.Text; @@ -124,6 +125,7 @@ namespace FreeSql.Odbc.PostgreSQL public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); value = getParamterValue(type, value); var type2 = value.GetType(); if (type2 == typeof(byte[])) return $"'\\x{CommonUtils.BytesSqlRaw(value as byte[])}'"; diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerUtils.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerUtils.cs index adfa99ab..118fcf69 100644 --- a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerUtils.cs +++ b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerUtils.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Data.Common; using System.Data.Odbc; +using System.Globalization; using System.Text; namespace FreeSql.Odbc.SqlServer @@ -87,6 +88,7 @@ namespace FreeSql.Odbc.SqlServer public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); if (type == typeof(byte[])) return $"0x{CommonUtils.BytesSqlRaw(value as byte[])}"; if (type == typeof(TimeSpan) || type == typeof(TimeSpan?)) { diff --git a/Providers/FreeSql.Provider.Oracle/OracleUtils.cs b/Providers/FreeSql.Provider.Oracle/OracleUtils.cs index 6f2ce884..868db830 100644 --- a/Providers/FreeSql.Provider.Oracle/OracleUtils.cs +++ b/Providers/FreeSql.Provider.Oracle/OracleUtils.cs @@ -4,6 +4,7 @@ using Oracle.ManagedDataAccess.Client; using System; using System.Collections.Generic; using System.Data.Common; +using System.Globalization; namespace FreeSql.Oracle { @@ -100,6 +101,7 @@ namespace FreeSql.Oracle public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); if (type == typeof(byte[])) return $"hextoraw('{CommonUtils.BytesSqlRaw(value as byte[])}')"; return FormatSql("{0}", value, 1); } diff --git a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLUtils.cs b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLUtils.cs index 2781ae1b..cc345caa 100644 --- a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLUtils.cs +++ b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLUtils.cs @@ -9,6 +9,7 @@ using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Data.Common; +using System.Globalization; using System.Linq; using System.Net; using System.Text; @@ -154,6 +155,7 @@ namespace FreeSql.PostgreSQL public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); if (_dicIsAssignableFromPostgisGeometry.GetOrAdd(type, t2 => typeof(PostgisGeometry).IsAssignableFrom(type.IsArray ? type.GetElementType() : type))) { var pam = AppendParamter(specialParams, null, null, type, value); diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerUtils.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerUtils.cs index 748ebf00..125b62e5 100644 --- a/Providers/FreeSql.Provider.SqlServer/SqlServerUtils.cs +++ b/Providers/FreeSql.Provider.SqlServer/SqlServerUtils.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Data.SqlClient; +using System.Globalization; using System.Text; namespace FreeSql.SqlServer @@ -99,6 +100,7 @@ namespace FreeSql.SqlServer public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); if (type == typeof(byte[])) return $"0x{CommonUtils.BytesSqlRaw(value as byte[])}"; if (type == typeof(TimeSpan) || type == typeof(TimeSpan?)) { diff --git a/Providers/FreeSql.Provider.Sqlite/SqliteUtils.cs b/Providers/FreeSql.Provider.Sqlite/SqliteUtils.cs index 41ba2433..9f092837 100644 --- a/Providers/FreeSql.Provider.Sqlite/SqliteUtils.cs +++ b/Providers/FreeSql.Provider.Sqlite/SqliteUtils.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Data.SQLite; +using System.Globalization; namespace FreeSql.Sqlite { @@ -100,6 +101,7 @@ namespace FreeSql.Sqlite public override string GetNoneParamaterSqlValue(List specialParams, Type type, object value) { if (value == null) return "NULL"; + if (type.IsNumberType()) return string.Format(CultureInfo.InvariantCulture, "{0}", value); return FormatSql("{0}", value, 1); } }