From 8373411f6341d0d4b50f06910e99ffb3d9eb82f4 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Wed, 25 Nov 2020 11:06:31 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=AE=8C=E5=96=84=20=E8=BE=BE=E6=A2=A6=20D?= =?UTF-8?q?bFirst=20=E6=94=AF=E6=8C=81=E8=A7=86=E5=9B=BE=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FreeSql.Tests/Dameng/DamengDbFirstTest.cs | 3 +++ Providers/FreeSql.Provider.Dameng/DamengDbFirst.cs | 14 +++++++++++++- .../Dameng/OdbcDamengDbFirst.cs | 14 +++++++++++++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/FreeSql.Tests/FreeSql.Tests/Dameng/DamengDbFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/Dameng/DamengDbFirstTest.cs index 8ae7578a..6466f826 100644 --- a/FreeSql.Tests/FreeSql.Tests/Dameng/DamengDbFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Dameng/DamengDbFirstTest.cs @@ -33,6 +33,9 @@ namespace FreeSql.Tests.Dameng Assert.Equal(t1.Columns.Count, t2.Columns.Count); var t3 = fsql.DbFirst.GetTableByName("notexists_tb"); Assert.Null(t3); + + var t4 = fsql.DbFirst.GetTableByName("v_2user_v1"); + Assert.NotNull(t4); } [Fact] diff --git a/Providers/FreeSql.Provider.Dameng/DamengDbFirst.cs b/Providers/FreeSql.Provider.Dameng/DamengDbFirst.cs index cba1151a..5dc2d3f4 100644 --- a/Providers/FreeSql.Provider.Dameng/DamengDbFirst.cs +++ b/Providers/FreeSql.Provider.Dameng/DamengDbFirst.cs @@ -270,7 +270,19 @@ b.comments, 'TABLE' from all_tables a left join all_tab_comments b on b.owner = a.owner and b.table_name = a.table_name and b.table_type = 'TABLE' -where {(ignoreCase ? "lower(a.owner)" : "a.owner")} in ({databaseIn}){(tbname == null ? "" : $" and {(ignoreCase ? "lower(a.table_name)" : "a.table_name")}={_commonUtils.FormatSql("{0}", tbname[1])}")}"; +where {(ignoreCase ? "lower(a.owner)" : "a.owner")} in ({databaseIn}){(tbname == null ? "" : $" and {(ignoreCase ? "lower(a.table_name)" : "a.table_name")}={_commonUtils.FormatSql("{0}", tbname[1])}")} + +UNION ALL + +select +a.owner || '.' || a.view_name, +a.owner, +a.view_name, +b.comments, +'VIEW' AS tp +from all_views a +left join all_tab_comments b on b.owner = a.owner and b.table_name = a.view_name and b.table_type = 'VIEW' +where {(ignoreCase ? "lower(a.owner)" : "a.owner")} in ({databaseIn}){(tbname == null ? "" : $" and {(ignoreCase ? "lower(a.view_name)" : "a.view_name")}={_commonUtils.FormatSql("{0}", tbname[1])}")}"; var ds = _orm.Ado.ExecuteArray(CommandType.Text, sql); if (ds == null) return loc1; diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengDbFirst.cs b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengDbFirst.cs index 3c410edc..1baceecb 100644 --- a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengDbFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengDbFirst.cs @@ -270,7 +270,19 @@ b.comments, 'TABLE' from all_tables a left join all_tab_comments b on b.owner = a.owner and b.table_name = a.table_name and b.table_type = 'TABLE' -where {(ignoreCase ? "lower(a.owner)" : "a.owner")} in ({databaseIn}){(tbname == null ? "" : $" and {(ignoreCase ? "lower(a.table_name)" : "a.table_name")}={_commonUtils.FormatSql("{0}", tbname[1])}")}"; +where {(ignoreCase ? "lower(a.owner)" : "a.owner")} in ({databaseIn}){(tbname == null ? "" : $" and {(ignoreCase ? "lower(a.table_name)" : "a.table_name")}={_commonUtils.FormatSql("{0}", tbname[1])}")} + +UNION ALL + +select +a.owner || '.' || a.view_name, +a.owner, +a.view_name, +b.comments, +'VIEW' AS tp +from all_views a +left join all_tab_comments b on b.owner = a.owner and b.table_name = a.view_name and b.table_type = 'VIEW' +where {(ignoreCase ? "lower(a.owner)" : "a.owner")} in ({databaseIn}){(tbname == null ? "" : $" and {(ignoreCase ? "lower(a.view_name)" : "a.view_name")}={_commonUtils.FormatSql("{0}", tbname[1])}")}"; var ds = _orm.Ado.ExecuteArray(CommandType.Text, sql); if (ds == null) return loc1;