From 9bae834386c3549163e78ae9a503ca01939740eb Mon Sep 17 00:00:00 2001
From: 28810 <28810@YEXIANGQIN>
Date: Mon, 9 Dec 2019 15:29:50 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E8=AF=BB=E5=86=99=E5=88=86=E7=A6=BB?=
=?UTF-8?q?=E9=83=A8=E9=97=A8=E4=BB=A3=E7=A0=81=E5=A4=84=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
FreeSql.DbContext/FreeSql.DbContext.xml | 7 +++++++
Providers/FreeSql.Provider.MySql/Curd/MySqlSelect.cs | 2 +-
Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs | 2 +-
.../FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs | 4 ++--
.../FreeSql.Provider.Odbc/Default/Curd/OdbcSelect.cs | 2 +-
.../MySql/Curd/OdbcMySqlInsert.cs | 4 ++--
.../MySql/Curd/OdbcMySqlSelect.cs | 2 +-
.../FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs | 2 +-
.../Oracle/Curd/OdbcOracleSelect.cs | 10 +++++-----
.../Oracle/OdbcOracleCodeFirst.cs | 2 +-
.../FreeSql.Provider.Odbc/Oracle/OdbcOracleDbFirst.cs | 2 +-
.../PostgreSQL/Curd/OdbcPostgreSQLSelect.cs | 2 +-
.../PostgreSQL/OdbcPostgreSQLCodeFirst.cs | 2 +-
.../SqlServer/Curd/OdbcSqlServerSelect.cs | 4 ++--
.../SqlServer/OdbcSqlServerDbFirst.cs | 4 ++--
Providers/FreeSql.Provider.Oracle/Curd/OracleSelect.cs | 10 +++++-----
Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs | 2 +-
Providers/FreeSql.Provider.Oracle/OracleDbFirst.cs | 2 +-
.../Curd/PostgreSQLSelect.cs | 2 +-
.../FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs | 2 +-
.../FreeSql.Provider.SqlServer/Curd/SqlServerSelect.cs | 4 ++--
.../FreeSql.Provider.SqlServer/SqlServerDbFirst.cs | 4 ++--
Providers/FreeSql.Provider.Sqlite/Curd/SqliteSelect.cs | 2 +-
Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs | 2 +-
24 files changed, 44 insertions(+), 37 deletions(-)
diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index dc0203b8..d9f91124 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -110,6 +110,13 @@
清空状态数据
+
+
+ 根据 lambda 条件删除数据
+
+
+
+
添加
diff --git a/Providers/FreeSql.Provider.MySql/Curd/MySqlSelect.cs b/Providers/FreeSql.Provider.MySql/Curd/MySqlSelect.cs
index a40c0d56..e3afe83b 100644
--- a/Providers/FreeSql.Provider.MySql/Curd/MySqlSelect.cs
+++ b/Providers/FreeSql.Provider.MySql/Curd/MySqlSelect.cs
@@ -26,7 +26,7 @@ namespace FreeSql.MySql.Curd
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
{
if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n");
- if (tbUnionsGt0) sb.Append("select * from (");
+ if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
var tbUnion = tbUnions[tbUnionsIdx];
var sbnav = new StringBuilder();
diff --git a/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs b/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs
index 03426dee..b942a2b4 100644
--- a/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs
+++ b/Providers/FreeSql.Provider.MySql/MySqlCodeFirst.cs
@@ -218,7 +218,7 @@ where a.table_schema in ({0}) and a.table_name in ({1})", tboldname ?? tbname);
if (istmpatler == false)
{
- var existsPrimary = ExecuteScalar(tbname[0], _commonUtils.FormatSql("select 1 from information_schema.key_column_usage where table_schema={0} and table_name={1} and constraint_name = 'PRIMARY' limit 1", tbname));
+ var existsPrimary = ExecuteScalar(tbname[0], _commonUtils.FormatSql(" select 1 from information_schema.key_column_usage where table_schema={0} and table_name={1} and constraint_name = 'PRIMARY' limit 1", tbname));
foreach (var tbcol in tb.ColumnsByPosition)
{
var isIdentityChanged = tbcol.Attribute.IsIdentity == true && tbcol.Attribute.DbType.IndexOf("AUTO_INCREMENT", StringComparison.CurrentCultureIgnoreCase) == -1;
diff --git a/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs b/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs
index be1e79d3..44cc9c5e 100644
--- a/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs
+++ b/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcInsert.cs
@@ -43,7 +43,7 @@ namespace FreeSql.Odbc.Default
conn = poolConn.Value;
}
_orm.Ado.ExecuteNonQuery(conn, _transaction, CommandType.Text, sql, _params);
- ret = long.TryParse(string.Concat(_orm.Ado.ExecuteScalar(conn, _transaction, CommandType.Text, _utils.Adapter.InsertAfterGetIdentitySql)), out var trylng) ? trylng : 0;
+ ret = long.TryParse(string.Concat(_orm.Ado.ExecuteScalar(conn, _transaction, CommandType.Text, $" {_utils.Adapter.InsertAfterGetIdentitySql}")), out var trylng) ? trylng : 0;
}
catch (Exception ex)
{
@@ -89,7 +89,7 @@ namespace FreeSql.Odbc.Default
conn = poolConn.Value;
}
await _orm.Ado.ExecuteNonQueryAsync(conn, _transaction, CommandType.Text, sql, _params);
- ret = long.TryParse(string.Concat(await _orm.Ado.ExecuteScalarAsync(conn, _transaction, CommandType.Text, _utils.Adapter.InsertAfterGetIdentitySql)), out var trylng) ? trylng : 0;
+ ret = long.TryParse(string.Concat(await _orm.Ado.ExecuteScalarAsync(conn, _transaction, CommandType.Text, $" {_utils.Adapter.InsertAfterGetIdentitySql}")), out var trylng) ? trylng : 0;
}
catch (Exception ex)
{
diff --git a/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcSelect.cs b/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcSelect.cs
index b3f0fb59..48c08927 100644
--- a/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcSelect.cs
+++ b/Providers/FreeSql.Provider.Odbc/Default/Curd/OdbcSelect.cs
@@ -26,7 +26,7 @@ namespace FreeSql.Odbc.Default
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
{
if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n");
- if (tbUnionsGt0) sb.Append("select * from (");
+ if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
var tbUnion = tbUnions[tbUnionsIdx];
var sbnav = new StringBuilder();
diff --git a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsert.cs b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsert.cs
index 72092283..9d973dd4 100644
--- a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsert.cs
+++ b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlInsert.cs
@@ -42,7 +42,7 @@ namespace FreeSql.Odbc.MySql
conn = poolConn.Value;
}
_orm.Ado.ExecuteNonQuery(conn, _transaction, CommandType.Text, sql, _params);
- ret = long.TryParse(string.Concat(_orm.Ado.ExecuteScalar(conn, _transaction, CommandType.Text, "SELECT LAST_INSERT_ID()")), out var trylng) ? trylng : 0;
+ ret = long.TryParse(string.Concat(_orm.Ado.ExecuteScalar(conn, _transaction, CommandType.Text, " SELECT LAST_INSERT_ID()")), out var trylng) ? trylng : 0;
}
catch (Exception ex)
{
@@ -122,7 +122,7 @@ namespace FreeSql.Odbc.MySql
conn = poolConn.Value;
}
await _orm.Ado.ExecuteNonQueryAsync(conn, _transaction, CommandType.Text, sql, _params);
- ret = long.TryParse(string.Concat(await _orm.Ado.ExecuteScalarAsync(conn, _transaction, CommandType.Text, "SELECT LAST_INSERT_ID()")), out var trylng) ? trylng : 0;
+ ret = long.TryParse(string.Concat(await _orm.Ado.ExecuteScalarAsync(conn, _transaction, CommandType.Text, " SELECT LAST_INSERT_ID()")), out var trylng) ? trylng : 0;
}
catch (Exception ex)
{
diff --git a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlSelect.cs b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlSelect.cs
index f013109b..3fef9f09 100644
--- a/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlSelect.cs
+++ b/Providers/FreeSql.Provider.Odbc/MySql/Curd/OdbcMySqlSelect.cs
@@ -26,7 +26,7 @@ namespace FreeSql.Odbc.MySql
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
{
if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n");
- if (tbUnionsGt0) sb.Append("select * from (");
+ if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
var tbUnion = tbUnions[tbUnionsIdx];
var sbnav = new StringBuilder();
diff --git a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs
index b4a17d8d..01361851 100644
--- a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlCodeFirst.cs
@@ -207,7 +207,7 @@ where a.table_schema in ({0}) and a.table_name in ({1})", tboldname ?? tbname);
if (istmpatler == false)
{
- var existsPrimary = ExecuteScalar(tbname[0], _commonUtils.FormatSql("select 1 from information_schema.key_column_usage where table_schema={0} and table_name={1} and constraint_name = 'PRIMARY' limit 1", tbname));
+ var existsPrimary = ExecuteScalar(tbname[0], _commonUtils.FormatSql(" select 1 from information_schema.key_column_usage where table_schema={0} and table_name={1} and constraint_name = 'PRIMARY' limit 1", tbname));
foreach (var tbcol in tb.ColumnsByPosition)
{
var isIdentityChanged = tbcol.Attribute.IsIdentity == true && tbcol.Attribute.DbType.IndexOf("AUTO_INCREMENT", StringComparison.CurrentCultureIgnoreCase) == -1;
diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleSelect.cs b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleSelect.cs
index 83b9f7ca..fedef69e 100644
--- a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleSelect.cs
+++ b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleSelect.cs
@@ -26,7 +26,7 @@ namespace FreeSql.Odbc.Oracle
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
{
if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n");
- if (tbUnionsGt0) sb.Append("select * from (");
+ if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
var tbUnion = tbUnions[tbUnionsIdx];
var sbnav = new StringBuilder();
@@ -109,13 +109,13 @@ namespace FreeSql.Odbc.Oracle
if (string.IsNullOrEmpty(_orderby))
{
if (_skip > 0)
- sb.Insert(0, "SELECT t.* FROM (").Append(") t WHERE t.\"__rownum__\" > ").Append(_skip);
+ sb.Insert(0, $"{_select} t.* FROM (").Append(") t WHERE t.\"__rownum__\" > ").Append(_skip);
}
else
{
- if (_skip > 0 && _limit > 0) sb.Insert(0, "SELECT t.* FROM (SELECT rt.*, ROWNUM AS \"__rownum__\" FROM (").Append(") rt WHERE ROWNUM < ").Append(_skip + _limit + 1).Append(") t WHERE t.\"__rownum__\" > ").Append(_skip);
- else if (_skip > 0) sb.Insert(0, "SELECT t.* FROM (").Append(") t WHERE ROWNUM > ").Append(_skip);
- else if (_limit > 0) sb.Insert(0, "SELECT t.* FROM (").Append(") t WHERE ROWNUM < ").Append(_limit + 1);
+ if (_skip > 0 && _limit > 0) sb.Insert(0, $"{_select} t.* FROM (SELECT rt.*, ROWNUM AS \"__rownum__\" FROM (").Append(") rt WHERE ROWNUM < ").Append(_skip + _limit + 1).Append(") t WHERE t.\"__rownum__\" > ").Append(_skip);
+ else if (_skip > 0) sb.Insert(0, $"{_select} t.* FROM (").Append(") t WHERE ROWNUM > ").Append(_skip);
+ else if (_limit > 0) sb.Insert(0, $"{_select} t.* FROM (").Append(") t WHERE ROWNUM < ").Append(_limit + 1);
}
sbnav.Clear();
diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs
index 844364ad..d39e4c48 100644
--- a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs
@@ -287,7 +287,7 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam
sb.Append(sbalter);
continue;
}
- var oldpk = _orm.Ado.ExecuteScalar(CommandType.Text, _commonUtils.FormatSql(@"select constraint_name from user_constraints where owner={0} and table_name={1} and constraint_type='P'", tbname))?.ToString();
+ var oldpk = _orm.Ado.ExecuteScalar(CommandType.Text, _commonUtils.FormatSql(@" select constraint_name from user_constraints where owner={0} and table_name={1} and constraint_type='P'", tbname))?.ToString();
if (string.IsNullOrEmpty(oldpk) == false)
sb.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" DROP CONSTRAINT ").Append(oldpk).Append("';\r\n");
diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleDbFirst.cs b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleDbFirst.cs
index 7d25d4ee..fe87f450 100644
--- a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleDbFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleDbFirst.cs
@@ -174,7 +174,7 @@ namespace FreeSql.Odbc.Oracle
if (database == null || database.Any() == false)
{
- var userUsers = _orm.Ado.ExecuteScalar("select username from user_users")?.ToString();
+ var userUsers = _orm.Ado.ExecuteScalar(" select username from user_users")?.ToString();
if (string.IsNullOrEmpty(userUsers)) return loc1;
database = new[] { userUsers };
}
diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLSelect.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLSelect.cs
index 9849d492..2125f405 100644
--- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLSelect.cs
+++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/Curd/OdbcPostgreSQLSelect.cs
@@ -26,7 +26,7 @@ namespace FreeSql.Odbc.PostgreSQL
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
{
if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n");
- if (tbUnionsGt0) sb.Append("select * from (");
+ if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
var tbUnion = tbUnions[tbUnionsIdx];
var sbnav = new StringBuilder();
diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs
index 5686919c..6872fc2f 100644
--- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs
@@ -296,7 +296,7 @@ where ns.nspname in ({0}) and d.relname in ({1}) and a.indisprimary = 'f'", tbol
sb.Append(sbalter);
continue;
}
- var oldpk = _orm.Ado.ExecuteScalar(CommandType.Text, _commonUtils.FormatSql(@"select pg_constraint.conname as pk_name from pg_constraint
+ var oldpk = _orm.Ado.ExecuteScalar(CommandType.Text, _commonUtils.FormatSql(@" select pg_constraint.conname as pk_name from pg_constraint
inner join pg_class on pg_constraint.conrelid = pg_class.oid
inner join pg_namespace on pg_namespace.oid = pg_class.relnamespace
where pg_namespace.nspname={0} and pg_class.relname={1} and pg_constraint.contype='p'
diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerSelect.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerSelect.cs
index 56b61970..12c218dc 100644
--- a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerSelect.cs
+++ b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerSelect.cs
@@ -32,7 +32,7 @@ namespace FreeSql.Odbc.SqlServer
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
{
if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n");
- if (tbUnionsGt0) sb.Append("select * from (");
+ if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
var tbUnion = tbUnions[tbUnionsIdx];
var sbnav = new StringBuilder();
@@ -147,7 +147,7 @@ namespace FreeSql.Odbc.SqlServer
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
{
if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n");
- if (tbUnionsGt0) sb.Append("select * from (");
+ if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
var tbUnion = tbUnions[tbUnionsIdx];
var sbnav = new StringBuilder();
diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerDbFirst.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerDbFirst.cs
index bf94f966..4e3652b1 100644
--- a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerDbFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerDbFirst.cs
@@ -253,8 +253,8 @@ from sys.columns", loc8.ToString().Replace("a.table_name", "a.object_id"));
{
sql += "union all" +
string.Format(tsql_place.Replace(
- "select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.column_id",
- "select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.parameter_id"), @"
+ " select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.column_id",
+ " select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.parameter_id"), @"
,cast(0 as bit) 'IsNullable'
,a.is_output 'IsIdentity'
from sys.parameters", loc88.ToString().Replace("a.table_name", "a.object_id"));
diff --git a/Providers/FreeSql.Provider.Oracle/Curd/OracleSelect.cs b/Providers/FreeSql.Provider.Oracle/Curd/OracleSelect.cs
index b2349ef0..9df0a9d5 100644
--- a/Providers/FreeSql.Provider.Oracle/Curd/OracleSelect.cs
+++ b/Providers/FreeSql.Provider.Oracle/Curd/OracleSelect.cs
@@ -26,7 +26,7 @@ namespace FreeSql.Oracle.Curd
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
{
if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n");
- if (tbUnionsGt0) sb.Append("select * from (");
+ if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
var tbUnion = tbUnions[tbUnionsIdx];
var sbnav = new StringBuilder();
@@ -109,13 +109,13 @@ namespace FreeSql.Oracle.Curd
if (string.IsNullOrEmpty(_orderby))
{
if (_skip > 0)
- sb.Insert(0, "SELECT t.* FROM (").Append(") t WHERE t.\"__rownum__\" > ").Append(_skip);
+ sb.Insert(0, $"{_select} t.* FROM (").Append(") t WHERE t.\"__rownum__\" > ").Append(_skip);
}
else
{
- if (_skip > 0 && _limit > 0) sb.Insert(0, "SELECT t.* FROM (SELECT rt.*, ROWNUM AS \"__rownum__\" FROM (").Append(") rt WHERE ROWNUM < ").Append(_skip + _limit + 1).Append(") t WHERE t.\"__rownum__\" > ").Append(_skip);
- else if (_skip > 0) sb.Insert(0, "SELECT t.* FROM (").Append(") t WHERE ROWNUM > ").Append(_skip);
- else if (_limit > 0) sb.Insert(0, "SELECT t.* FROM (").Append(") t WHERE ROWNUM < ").Append(_limit + 1);
+ if (_skip > 0 && _limit > 0) sb.Insert(0, $"{_select} t.* FROM (SELECT rt.*, ROWNUM AS \"__rownum__\" FROM (").Append(") rt WHERE ROWNUM < ").Append(_skip + _limit + 1).Append(") t WHERE t.\"__rownum__\" > ").Append(_skip);
+ else if (_skip > 0) sb.Insert(0, $"{_select} t.* FROM (").Append(") t WHERE ROWNUM > ").Append(_skip);
+ else if (_limit > 0) sb.Insert(0, $"{_select} t.* FROM (").Append(") t WHERE ROWNUM < ").Append(_limit + 1);
}
sbnav.Clear();
diff --git a/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs b/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs
index 52bb15f6..ff6da1be 100644
--- a/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs
@@ -288,7 +288,7 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam
sb.Append(sbalter);
continue;
}
- var oldpk = _orm.Ado.ExecuteScalar(CommandType.Text, _commonUtils.FormatSql(@"select constraint_name from user_constraints where owner={0} and table_name={1} and constraint_type='P'", tbname))?.ToString();
+ var oldpk = _orm.Ado.ExecuteScalar(CommandType.Text, _commonUtils.FormatSql(@" select constraint_name from user_constraints where owner={0} and table_name={1} and constraint_type='P'", tbname))?.ToString();
if (string.IsNullOrEmpty(oldpk) == false)
sb.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" DROP CONSTRAINT ").Append(oldpk).Append("';\r\n");
diff --git a/Providers/FreeSql.Provider.Oracle/OracleDbFirst.cs b/Providers/FreeSql.Provider.Oracle/OracleDbFirst.cs
index d76f4be5..089e2791 100644
--- a/Providers/FreeSql.Provider.Oracle/OracleDbFirst.cs
+++ b/Providers/FreeSql.Provider.Oracle/OracleDbFirst.cs
@@ -174,7 +174,7 @@ namespace FreeSql.Oracle
if (database == null || database.Any() == false)
{
- var userUsers = _orm.Ado.ExecuteScalar("select username from user_users")?.ToString();
+ var userUsers = _orm.Ado.ExecuteScalar(" select username from user_users")?.ToString();
if (string.IsNullOrEmpty(userUsers)) return loc1;
database = new[] { userUsers };
}
diff --git a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLSelect.cs b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLSelect.cs
index 928d91c6..136f1d3a 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLSelect.cs
+++ b/Providers/FreeSql.Provider.PostgreSQL/Curd/PostgreSQLSelect.cs
@@ -26,7 +26,7 @@ namespace FreeSql.PostgreSQL.Curd
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
{
if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n");
- if (tbUnionsGt0) sb.Append("select * from (");
+ if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
var tbUnion = tbUnions[tbUnionsIdx];
var sbnav = new StringBuilder();
diff --git a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs
index f8bfab2f..ebc6d40f 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs
+++ b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs
@@ -334,7 +334,7 @@ where ns.nspname in ({0}) and d.relname in ({1}) and a.indisprimary = 'f'", tbol
sb.Append(sbalter);
continue;
}
- var oldpk = _orm.Ado.ExecuteScalar(CommandType.Text, _commonUtils.FormatSql(@"select pg_constraint.conname as pk_name from pg_constraint
+ var oldpk = _orm.Ado.ExecuteScalar(CommandType.Text, _commonUtils.FormatSql(@" select pg_constraint.conname as pk_name from pg_constraint
inner join pg_class on pg_constraint.conrelid = pg_class.oid
inner join pg_namespace on pg_namespace.oid = pg_class.relnamespace
where pg_namespace.nspname={0} and pg_class.relname={1} and pg_constraint.contype='p'
diff --git a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerSelect.cs b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerSelect.cs
index c3518557..5678baaa 100644
--- a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerSelect.cs
+++ b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerSelect.cs
@@ -32,7 +32,7 @@ namespace FreeSql.SqlServer.Curd
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
{
if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n");
- if (tbUnionsGt0) sb.Append("select * from (");
+ if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
var tbUnion = tbUnions[tbUnionsIdx];
var sbnav = new StringBuilder();
@@ -147,7 +147,7 @@ namespace FreeSql.SqlServer.Curd
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
{
if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n");
- if (tbUnionsGt0) sb.Append("select * from (");
+ if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
var tbUnion = tbUnions[tbUnionsIdx];
var sbnav = new StringBuilder();
diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerDbFirst.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerDbFirst.cs
index 2be0a2e9..6cdb4ca2 100644
--- a/Providers/FreeSql.Provider.SqlServer/SqlServerDbFirst.cs
+++ b/Providers/FreeSql.Provider.SqlServer/SqlServerDbFirst.cs
@@ -256,8 +256,8 @@ from sys.columns", loc8.ToString().Replace("a.table_name", "a.object_id"));
{
sql += "union all" +
string.Format(tsql_place.Replace(
- "select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.column_id",
- "select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.parameter_id"), @"
+ " select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.column_id",
+ " select value from sys.extended_properties where major_id = a.object_id AND minor_id = a.parameter_id"), @"
,cast(0 as bit) 'IsNullable'
,a.is_output 'IsIdentity'
from sys.parameters", loc88.ToString().Replace("a.table_name", "a.object_id"));
diff --git a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteSelect.cs b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteSelect.cs
index ba3af794..33b16a1b 100644
--- a/Providers/FreeSql.Provider.Sqlite/Curd/SqliteSelect.cs
+++ b/Providers/FreeSql.Provider.Sqlite/Curd/SqliteSelect.cs
@@ -26,7 +26,7 @@ namespace FreeSql.Sqlite.Curd
for (var tbUnionsIdx = 0; tbUnionsIdx < tbUnions.Count; tbUnionsIdx++)
{
if (tbUnionsIdx > 0) sb.Append(" \r\n\r\nUNION ALL\r\n\r\n");
- if (tbUnionsGt0) sb.Append("select * from (");
+ if (tbUnionsGt0) sb.Append(_select).Append(" * from (");
var tbUnion = tbUnions[tbUnionsIdx];
var sbnav = new StringBuilder();
diff --git a/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs b/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs
index d2e14193..9ce4376f 100644
--- a/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs
@@ -211,7 +211,7 @@ namespace FreeSql.Sqlite
{
if (string.Concat(dbIndex[3]) == "pk") continue;
var dbIndexesColumns = _orm.Ado.ExecuteArray(CommandType.Text, $"PRAGMA {_commonUtils.QuoteSqlName(tbtmp[0])}.INDEX_INFO({dbIndex[1]})");
- var dbIndexesSql = string.Concat(_orm.Ado.ExecuteScalar(CommandType.Text, $"SELECT sql FROM sqlite_master WHERE name = '{dbIndex[1]}'"));
+ var dbIndexesSql = string.Concat(_orm.Ado.ExecuteScalar(CommandType.Text, $" SELECT sql FROM sqlite_master WHERE name = '{dbIndex[1]}'"));
foreach (var dbcolumn in dbIndexesColumns)
{
var dbcolumnName = string.Concat(dbcolumn[2]);