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); } }