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;