From 9bde42a5662210b8c75b14ae77bcba79a3615c84 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Sat, 15 Jan 2022 09:56:01 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20pgsql=20DbFirst=20IsPr?= =?UTF-8?q?imary=20bug=EF=BC=9Bhttps://github.com/2881099/FreeSql.Wiki.Vue?= =?UTF-8?q?Press/issues/9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PostgreSQL/PostgreSQLDbFirstTest.cs | 11 +++++++++++ .../KingbaseESDbFirst.cs | 16 ++++++++-------- .../KingbaseES/OdbcKingbaseESDbFirst.cs | 16 ++++++++-------- .../PostgreSQL/OdbcPostgreSQLDbFirst.cs | 16 ++++++++-------- .../PostgreSQLDbFirst.cs | 16 ++++++++-------- .../FreeSql.Provider.ShenTong/ShenTongDbFirst.cs | 16 ++++++++-------- 6 files changed, 51 insertions(+), 40 deletions(-) diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLDbFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLDbFirstTest.cs index bd7dfcb5..60840aca 100644 --- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLDbFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLDbFirstTest.cs @@ -24,6 +24,17 @@ namespace FreeSql.Tests.PostgreSQL public void GetTableByName() { var fsql = g.pgsql; + + fsql.Ado.ExecuteNonQuery(@"CREATE TABLE IF NOT EXISTS public.table_test +( + id integer NOT NULL, + coin_list money[], + PRIMARY KEY (id) +)"); + var t111 = fsql.DbFirst.GetTableByName("table_test"); + Assert.True(t111.Columns.Find(a => a.Name == "id").IsPrimary); + Assert.False(t111.Columns.Find(a => a.Name == "coin_list").IsPrimary); + var t1 = fsql.DbFirst.GetTableByName("tb_alltype"); var t2 = fsql.DbFirst.GetTableByName("public.tb_alltype"); Assert.NotNull(t1); diff --git a/Providers/FreeSql.Provider.KingbaseES/KingbaseESDbFirst.cs b/Providers/FreeSql.Provider.KingbaseES/KingbaseESDbFirst.cs index a4968d86..89812228 100644 --- a/Providers/FreeSql.Provider.KingbaseES/KingbaseESDbFirst.cs +++ b/Providers/FreeSql.Provider.KingbaseES/KingbaseESDbFirst.cs @@ -349,14 +349,14 @@ where {loc8.ToString().Replace("a.table_name", "ns.nspname || '.' || d.relname") var inkey = string.Concat(row[7]).Split(' '); var attnum = int.Parse(string.Concat(row[8])); attnum = int.Parse(inkey[attnum - 1]); - foreach (string tc in loc3[object_id].Keys) - { - if (loc3[object_id][tc].DbTypeText.EndsWith("[]")) - { - column = tc; - break; - } - } + //foreach (string tc in loc3[object_id].Keys) + //{ + // if (loc3[object_id][tc].DbTypeText.EndsWith("[]")) + // { + // column = tc; + // break; + // } + //} if (loc3.ContainsKey(object_id) == false || loc3[object_id].ContainsKey(column) == false) continue; var loc9 = loc3[object_id][column]; if (loc9.IsPrimary == false && is_primary_key) loc9.IsPrimary = is_primary_key; diff --git a/Providers/FreeSql.Provider.Odbc/KingbaseES/OdbcKingbaseESDbFirst.cs b/Providers/FreeSql.Provider.Odbc/KingbaseES/OdbcKingbaseESDbFirst.cs index b8b29c0f..cf53aa9f 100644 --- a/Providers/FreeSql.Provider.Odbc/KingbaseES/OdbcKingbaseESDbFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/KingbaseES/OdbcKingbaseESDbFirst.cs @@ -350,14 +350,14 @@ where {loc8.ToString().Replace("a.table_name", "ns.nspname || '.' || d.relname") var inkey = string.Concat(row[7]).Split(' '); var attnum = int.Parse(string.Concat(row[8])); attnum = int.Parse(inkey[attnum - 1]); - foreach (string tc in loc3[object_id].Keys) - { - if (loc3[object_id][tc].DbTypeText.EndsWith("[]")) - { - column = tc; - break; - } - } + //foreach (string tc in loc3[object_id].Keys) + //{ + // if (loc3[object_id][tc].DbTypeText.EndsWith("[]")) + // { + // column = tc; + // break; + // } + //} if (loc3.ContainsKey(object_id) == false || loc3[object_id].ContainsKey(column) == false) continue; var loc9 = loc3[object_id][column]; if (loc9.IsPrimary == false && is_primary_key) loc9.IsPrimary = is_primary_key; diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLDbFirst.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLDbFirst.cs index 56ed17ae..e4e0b467 100644 --- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLDbFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLDbFirst.cs @@ -365,14 +365,14 @@ where {loc8.ToString().Replace("a.table_name", "ns.nspname || '.' || d.relname") var inkey = string.Concat(row[7]).Split(' '); var attnum = int.Parse(string.Concat(row[8])); attnum = int.Parse(inkey[attnum - 1]); - foreach (string tc in loc3[object_id].Keys) - { - if (loc3[object_id][tc].DbTypeText.EndsWith("[]")) - { - column = tc; - break; - } - } + //foreach (string tc in loc3[object_id].Keys) + //{ + // if (loc3[object_id][tc].DbTypeText.EndsWith("[]")) + // { + // column = tc; + // break; + // } + //} if (loc3.ContainsKey(object_id) == false || loc3[object_id].ContainsKey(column) == false) continue; var loc9 = loc3[object_id][column]; if (loc9.IsPrimary == false && is_primary_key) loc9.IsPrimary = is_primary_key; diff --git a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLDbFirst.cs b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLDbFirst.cs index 64e06c47..0aa6c59e 100644 --- a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLDbFirst.cs +++ b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLDbFirst.cs @@ -475,14 +475,14 @@ where {loc8.ToString().Replace("a.table_name", "ns.nspname || '.' || d.relname") var inkey = string.Concat(row[7]).Split(' '); var attnum = int.Parse(string.Concat(row[8])); attnum = int.Parse(inkey[attnum - 1]); - foreach (string tc in loc3[object_id].Keys) - { - if (loc3[object_id][tc].DbTypeText.EndsWith("[]")) - { - column = tc; - break; - } - } + //foreach (string tc in loc3[object_id].Keys) //bug: https://github.com/2881099/FreeSql.Wiki.VuePress/issues/9 + //{ + // if (loc3[object_id][tc].DbTypeText.EndsWith("[]")) + // { + // column = tc; + // break; + // } + //} if (loc3.ContainsKey(object_id) == false || loc3[object_id].ContainsKey(column) == false) continue; var loc9 = loc3[object_id][column]; if (loc9.IsPrimary == false && is_primary_key) loc9.IsPrimary = is_primary_key; diff --git a/Providers/FreeSql.Provider.ShenTong/ShenTongDbFirst.cs b/Providers/FreeSql.Provider.ShenTong/ShenTongDbFirst.cs index f26e9592..b52de0cd 100644 --- a/Providers/FreeSql.Provider.ShenTong/ShenTongDbFirst.cs +++ b/Providers/FreeSql.Provider.ShenTong/ShenTongDbFirst.cs @@ -369,14 +369,14 @@ where {loc8.ToString().Replace("a.table_name", "ns.nspname || '.' || d.relname") var inkey = string.Concat(row[7]).Split(' '); var attnum = int.Parse(string.Concat(row[8])); attnum = int.Parse(inkey[attnum - 1]); - foreach (string tc in loc3[object_id].Keys) - { - if (loc3[object_id][tc].DbTypeText.EndsWith("[]")) - { - column = tc; - break; - } - } + //foreach (string tc in loc3[object_id].Keys) + //{ + // if (loc3[object_id][tc].DbTypeText.EndsWith("[]")) + // { + // column = tc; + // break; + // } + //} if (loc3.ContainsKey(object_id) == false || loc3[object_id].ContainsKey(column) == false) continue; var loc9 = loc3[object_id][column]; if (loc9.IsPrimary == false && is_primary_key) loc9.IsPrimary = is_primary_key;