diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index eacd506b..63db6c75 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -121,13 +121,6 @@ 清空状态数据 - - - 根据 lambda 条件删除数据 - - - - 添加 @@ -222,15 +215,6 @@ - - - 批量注入 Repository,可以参考代码自行调整 - - - - - - 注意:IFreeSql 属于顶级对象,事务无法自动传递。 diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs index 98e1eeea..015df564 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs @@ -27,55 +27,108 @@ namespace FreeSql.Tests.Odbc.Dameng } [Fact] - public void ı_ֶ() + public void ֱ_ֶ() { - var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<ı>(); - g.dameng.CodeFirst.SyncStructure<ı>(); + var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<ֱ>(); + g.dameng.CodeFirst.SyncStructure<ֱ>(); - var item = new ı + var item = new ֱ { = "Ա", ʱ = DateTime.Now }; - Assert.Equal(1, g.dameng.Insert<ı>().AppendData(item).ExecuteAffrows()); + Assert.Equal(1, g.dameng.Insert<ֱ>().AppendData(item).ExecuteAffrows()); Assert.NotEqual(Guid.Empty, item.); - var item2 = g.dameng.Select<ı>().Where(a => a. == item.).First(); + var item2 = g.dameng.Select<ֱ>().Where(a => a. == item.).First(); Assert.NotNull(item2); Assert.Equal(item., item2.); Assert.Equal(item., item2.); item. = "Ա"; - Assert.Equal(1, g.dameng.Update<ı>().SetSource(item).ExecuteAffrows()); - item2 = g.dameng.Select<ı>().Where(a => a. == item.).First(); + Assert.Equal(1, g.dameng.Update<ֱ>().SetSource(item).ExecuteAffrows()); + item2 = g.dameng.Select<ֱ>().Where(a => a. == item.).First(); Assert.NotNull(item2); Assert.Equal(item., item2.); Assert.Equal(item., item2.); item. = "Ա_repo"; - var repo = g.dameng.GetRepository<ı>(); + var repo = g.dameng.GetRepository<ֱ>(); Assert.Equal(1, repo.Update(item)); - item2 = g.dameng.Select<ı>().Where(a => a. == item.).First(); + item2 = g.dameng.Select<ֱ>().Where(a => a. == item.).First(); Assert.NotNull(item2); Assert.Equal(item., item2.); Assert.Equal(item., item2.); item. = "Ա_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.dameng.Select<ı>().Where(a => a. == item.).First(); + item2 = g.dameng.Select<ֱ>().Where(a => a. == item.).First(); Assert.NotNull(item2); Assert.Equal(item., item2.); Assert.Equal(item., item2.); } - class ı + [Table(Name = "123ֱ")] + class ֱ { - [Column(IsPrimary = true)] + [Column(IsPrimary = true, Name = "123")] public Guid { get; set; } + [Column(Name = "123")] public string { get; set; } + [Column(Name = "123ʱ")] public DateTime ʱ { get; set; } } + //[Fact] + //public void ı_ֶ() + //{ + // var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<ı>(); + // g.dameng.CodeFirst.SyncStructure<ı>(); + + // var item = new ı + // { + // = "Ա", + // ʱ = DateTime.Now + // }; + // Assert.Equal(1, g.dameng.Insert<ı>().AppendData(item).ExecuteAffrows()); + // Assert.NotEqual(Guid.Empty, item.); + // var item2 = g.dameng.Select<ı>().Where(a => a. == item.).First(); + // Assert.NotNull(item2); + // Assert.Equal(item., item2.); + // Assert.Equal(item., item2.); + + // item. = "Ա"; + // Assert.Equal(1, g.dameng.Update<ı>().SetSource(item).ExecuteAffrows()); + // item2 = g.dameng.Select<ı>().Where(a => a. == item.).First(); + // Assert.NotNull(item2); + // Assert.Equal(item., item2.); + // Assert.Equal(item., item2.); + + // item. = "Ա_repo"; + // var repo = g.dameng.GetRepository<ı>(); + // Assert.Equal(1, repo.Update(item)); + // item2 = g.dameng.Select<ı>().Where(a => a. == item.).First(); + // Assert.NotNull(item2); + // Assert.Equal(item., item2.); + // Assert.Equal(item., item2.); + + // item. = "Ա_repo22"; + // Assert.Equal(1, repo.Update(item)); + // item2 = g.dameng.Select<ı>().Where(a => a. == item.).First(); + // Assert.NotNull(item2); + // Assert.Equal(item., item2.); + // Assert.Equal(item., item2.); + //} + //class ı + //{ + // [Column(IsPrimary = true)] + // public Guid { get; set; } + + // public string { get; set; } + + // public DateTime ʱ { get; set; } + //} + [Fact] public void AddUniques() { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/g.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/g.cs index e0b589bd..56004005 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/g.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/g.cs @@ -70,8 +70,8 @@ public class g public static IFreeSql odbc => odbcLazy.Value; static Lazy damemgLazy = new Lazy(() => new FreeSql.FreeSqlBuilder() - .UseConnectionString(FreeSql.DataType.OdbcDameng, "Driver={DM8 ODBC DRIVER};Server=127.0.0.1:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=USER1;PWD=123456789") - //.UseConnectionFactory(FreeSql.DataType.OdbcDameng, () => new System.Data.Odbc.OdbcConnection("Driver={DM8 ODBC DRIVER};Server=127.0.0.1:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=USER1;PWD=123456789")) + .UseConnectionString(FreeSql.DataType.OdbcDameng, "Driver={DM8 ODBC DRIVER};Server=127.0.0.1:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=123USER1;PWD=123456789") + //.UseConnectionFactory(FreeSql.DataType.OdbcDameng, () => new System.Data.Odbc.OdbcConnection("Driver={DM8 ODBC DRIVER};Server=127.0.0.1:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=123USER1;PWD=123456789")) .UseAutoSyncStructure(true) .UseLazyLoading(true) .UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper) @@ -85,8 +85,8 @@ public class g //启动南大通用数据库 oninit -vy static Lazy gbaseLazy = new Lazy(() => new FreeSql.FreeSqlBuilder() - .UseConnectionString(FreeSql.DataType.OdbcDameng, "Driver={GBase ODBC DRIVER (64-bit)};Server=192.168.164.10:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=USER1;PWD=123456789") - //.UseConnectionFactory(FreeSql.DataType.OdbcDameng, () => new System.Data.Odbc.OdbcConnection("Driver={DM8 ODBC DRIVER};Server=127.0.0.1:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=USER1;PWD=123456789")) + .UseConnectionString(FreeSql.DataType.OdbcDameng, "Driver={GBase ODBC DRIVER (64-bit)};Server=192.168.164.10:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=123USER1;PWD=123456789") + //.UseConnectionFactory(FreeSql.DataType.OdbcDameng, () => new System.Data.Odbc.OdbcConnection("Driver={DM8 ODBC DRIVER};Server=127.0.0.1:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=123USER1;PWD=123456789")) .UseAutoSyncStructure(true) .UseLazyLoading(true) .UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper) diff --git a/FreeSql.Tests/FreeSql.Tests/g.cs b/FreeSql.Tests/FreeSql.Tests/g.cs index 992dfb44..131bb7bd 100644 --- a/FreeSql.Tests/FreeSql.Tests/g.cs +++ b/FreeSql.Tests/FreeSql.Tests/g.cs @@ -55,8 +55,8 @@ public class g public static IFreeSql sqlserver => sqlserverLazy.Value; static Lazy oracleLazy = new Lazy(() => new FreeSql.FreeSqlBuilder() - .UseConnectionString(FreeSql.DataType.Oracle, "user id=user1;password=123456;data source=//127.0.0.1:1521/XE;Pooling=true;Max Pool Size=2") - //.UseConnectionFactory(FreeSql.DataType.Oracle, () => new Oracle.ManagedDataAccess.Client.OracleConnection("user id=user1;password=123456;data source=//127.0.0.1:1521/XE;Pooling=true;")) + .UseConnectionString(FreeSql.DataType.Oracle, "user id=123user1;password=123456;data source=//127.0.0.1:1521/XE;Pooling=true;Max Pool Size=2") + //.UseConnectionFactory(FreeSql.DataType.Oracle, () => new Oracle.ManagedDataAccess.Client.OracleConnection("user id=123user1;password=123456;data source=//127.0.0.1:1521/XE;Pooling=true;")) .UseAutoSyncStructure(true) //.UseGenerateCommandParameterWithLambda(true) .UseLazyLoading(true) diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs index b28aad3f..a2a91981 100644 --- a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs @@ -139,7 +139,7 @@ namespace FreeSql.Odbc.Dameng if (tb.Primarys.Any()) { var pkname = primaryKeyName ?? $"{tbname[0]}_{tbname[1]}_pk1"; - sb.Append(" \r\n CONSTRAINT ").Append(pkname).Append(" PRIMARY KEY ("); + sb.Append(" \r\n CONSTRAINT ").Append(_commonUtils.QuoteSqlName(pkname)).Append(" PRIMARY KEY ("); foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", "); sb.Remove(sb.Length - 2, 2).Append("),"); } @@ -323,7 +323,7 @@ and not exists(select 1 from all_constraints where index_name = a.index_name and if (tb.Primarys.Any()) { var pkname = primaryKeyName ?? $"{tbname[0]}_{tbname[1]}_pk2"; - sb.Append(" \r\n CONSTRAINT ").Append(pkname).Append(" PRIMARY KEY ("); + sb.Append(" \r\n CONSTRAINT ").Append(_commonUtils.QuoteSqlName(pkname)).Append(" PRIMARY KEY ("); foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", "); sb.Remove(sb.Length - 2, 2).Append("),"); } @@ -384,12 +384,12 @@ and not exists(select 1 from all_constraints where index_name = a.index_name and { if (dicDeclare.ContainsKey(seqname) == false) { - sbDeclare.Append("\r\n").Append(seqname).Append("IS NUMBER; \r\n"); + sbDeclare.Append("\r\nIS").Append(seqname).Append(" NUMBER; \r\n"); dicDeclare.Add(seqname, true); } - sb.Append(seqname).Append("IS := 0; \r\n") - .Append(" select count(1) into ").Append(seqname).Append(_commonUtils.FormatSql("IS from user_sequences where sequence_name={0}; \r\n", seqname)) - .Append("if ").Append(seqname).Append("IS > 0 then \r\n") + sb.Append("IS").Append(seqname).Append(" := 0; \r\n") + .Append(" select count(1) into IS").Append(seqname).Append(_commonUtils.FormatSql(" from user_sequences where sequence_name={0}; \r\n", seqname)) + .Append("if IS").Append(seqname).Append(" > 0 then \r\n") .Append(" execute immediate 'DROP SEQUENCE ").Append(_commonUtils.QuoteSqlName(seqname)).Append("';\r\n") .Append("end if; \r\n"); }; @@ -397,12 +397,12 @@ and not exists(select 1 from all_constraints where index_name = a.index_name and { if (dicDeclare.ContainsKey(tiggerName) == false) { - sbDeclare.Append("\r\n").Append(tiggerName).Append("IS NUMBER; \r\n"); + sbDeclare.Append("\r\nIS").Append(tiggerName).Append(" NUMBER; \r\n"); dicDeclare.Add(tiggerName, true); } - sb.Append(tiggerName).Append("IS := 0; \r\n") - .Append(" select count(1) into ").Append(tiggerName).Append(_commonUtils.FormatSql("IS from user_triggers where trigger_name={0}; \r\n", tiggerName)) - .Append("if ").Append(tiggerName).Append("IS > 0 then \r\n") + sb.Append("IS").Append(tiggerName).Append(" := 0; \r\n") + .Append(" select count(1) into IS").Append(tiggerName).Append(_commonUtils.FormatSql(" from user_triggers where trigger_name={0}; \r\n", tiggerName)) + .Append("if IS").Append(tiggerName).Append(" > 0 then \r\n") .Append(" execute immediate 'DROP TRIGGER ").Append(_commonUtils.QuoteSqlName(tiggerName)).Append("';\r\n") .Append("end if; \r\n"); }; diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs index f741ef1b..a898f956 100644 --- a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs @@ -139,7 +139,7 @@ namespace FreeSql.Odbc.Oracle if (tb.Primarys.Any()) { var pkname = primaryKeyName ?? $"{tbname[0]}_{tbname[1]}_pk1"; - sb.Append(" \r\n CONSTRAINT ").Append(pkname).Append(" PRIMARY KEY ("); + sb.Append(" \r\n CONSTRAINT ").Append(_commonUtils.QuoteSqlName(pkname)).Append(" PRIMARY KEY ("); foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", "); sb.Remove(sb.Length - 2, 2).Append("),"); } @@ -321,7 +321,7 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam if (tb.Primarys.Any()) { var pkname = primaryKeyName ?? $"{tbname[0]}_{tbname[1]}_pk2"; - sb.Append(" \r\n CONSTRAINT ").Append(pkname).Append(" PRIMARY KEY ("); + sb.Append(" \r\n CONSTRAINT ").Append(_commonUtils.QuoteSqlName(pkname)).Append(" PRIMARY KEY ("); foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", "); sb.Remove(sb.Length - 2, 2).Append("),"); } @@ -382,12 +382,12 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam { if (dicDeclare.ContainsKey(seqname) == false) { - sbDeclare.Append("\r\n").Append(seqname).Append("IS NUMBER; \r\n"); + sbDeclare.Append("\r\nIS").Append(seqname).Append(" NUMBER; \r\n"); dicDeclare.Add(seqname, true); } - sb.Append(seqname).Append("IS := 0; \r\n") - .Append(" select count(1) into ").Append(seqname).Append(_commonUtils.FormatSql("IS from user_sequences where sequence_name={0}; \r\n", seqname)) - .Append("if ").Append(seqname).Append("IS > 0 then \r\n") + sb.Append("IS").Append(seqname).Append(" := 0; \r\n") + .Append(" select count(1) into IS").Append(seqname).Append(_commonUtils.FormatSql(" from user_sequences where sequence_name={0}; \r\n", seqname)) + .Append("if IS").Append(seqname).Append(" > 0 then \r\n") .Append(" execute immediate 'DROP SEQUENCE ").Append(_commonUtils.QuoteSqlName(seqname)).Append("';\r\n") .Append("end if; \r\n"); }; @@ -395,12 +395,12 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam { if (dicDeclare.ContainsKey(tiggerName) == false) { - sbDeclare.Append("\r\n").Append(tiggerName).Append("IS NUMBER; \r\n"); + sbDeclare.Append("\r\nIS").Append(tiggerName).Append(" NUMBER; \r\n"); dicDeclare.Add(tiggerName, true); } - sb.Append(tiggerName).Append("IS := 0; \r\n") - .Append(" select count(1) into ").Append(tiggerName).Append(_commonUtils.FormatSql("IS from user_triggers where trigger_name={0}; \r\n", tiggerName)) - .Append("if ").Append(tiggerName).Append("IS > 0 then \r\n") + sb.Append("IS").Append(tiggerName).Append(" := 0; \r\n") + .Append(" select count(1) into IS").Append(tiggerName).Append(_commonUtils.FormatSql(" from user_triggers where trigger_name={0}; \r\n", tiggerName)) + .Append("if IS").Append(tiggerName).Append(" > 0 then \r\n") .Append(" execute immediate 'DROP TRIGGER ").Append(_commonUtils.QuoteSqlName(tiggerName)).Append("';\r\n") .Append("end if; \r\n"); }; diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs index 854ee076..71e3322a 100644 --- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs +++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLCodeFirst.cs @@ -132,7 +132,8 @@ namespace FreeSql.Odbc.PostgreSQL } if (tb.Primarys.Any()) { - sb.Append(" \r\n CONSTRAINT ").Append(tbname[0]).Append("_").Append(tbname[1]).Append("_pkey PRIMARY KEY ("); + var pkname = $"{tbname[0]}_{tbname[1]}_pkey"; + sb.Append(" \r\n CONSTRAINT ").Append(_commonUtils.QuoteSqlName(pkname)).Append(" PRIMARY KEY ("); foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", "); sb.Remove(sb.Length - 2, 2).Append("),"); } @@ -329,7 +330,8 @@ where pg_namespace.nspname={0} and pg_class.relname={1} and pg_constraint.contyp } if (tb.Primarys.Any()) { - sb.Append(" \r\n CONSTRAINT ").Append(tbname[0]).Append("_").Append(tbname[1]).Append("_pkey PRIMARY KEY ("); + var pkname = $"{tbname[0]}_{tbname[1]}_pkey"; + sb.Append(" \r\n CONSTRAINT ").Append(_commonUtils.QuoteSqlName(pkname)).Append(" PRIMARY KEY ("); foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", "); sb.Remove(sb.Length - 2, 2).Append("),"); } diff --git a/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs b/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs index b28bc7a2..132219f0 100644 --- a/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs +++ b/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs @@ -140,7 +140,7 @@ namespace FreeSql.Oracle if (tb.Primarys.Any()) { var pkname = primaryKeyName ?? $"{tbname[0]}_{tbname[1]}_pk1"; - sb.Append(" \r\n CONSTRAINT ").Append(pkname).Append(" PRIMARY KEY ("); + sb.Append(" \r\n CONSTRAINT ").Append(_commonUtils.QuoteSqlName(pkname)).Append(" PRIMARY KEY ("); foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", "); sb.Remove(sb.Length - 2, 2).Append("),"); } @@ -322,7 +322,7 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam if (tb.Primarys.Any()) { var pkname = primaryKeyName ?? $"{tbname[0]}_{tbname[1]}_pk2"; - sb.Append(" \r\n CONSTRAINT ").Append(pkname).Append(" PRIMARY KEY ("); + sb.Append(" \r\n CONSTRAINT ").Append(_commonUtils.QuoteSqlName(pkname)).Append(" PRIMARY KEY ("); foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", "); sb.Remove(sb.Length - 2, 2).Append("),"); } @@ -383,12 +383,12 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam { if (dicDeclare.ContainsKey(seqname) == false) { - sbDeclare.Append("\r\n").Append(seqname).Append("IS NUMBER; \r\n"); + sbDeclare.Append("\r\nIS").Append(seqname).Append(" NUMBER; \r\n"); dicDeclare.Add(seqname, true); } - sb.Append(seqname).Append("IS := 0; \r\n") - .Append(" select count(1) into ").Append(seqname).Append(_commonUtils.FormatSql("IS from user_sequences where sequence_name={0}; \r\n", seqname)) - .Append("if ").Append(seqname).Append("IS > 0 then \r\n") + sb.Append("IS").Append(seqname).Append(" := 0; \r\n") + .Append(" select count(1) into IS").Append(seqname).Append(_commonUtils.FormatSql(" from user_sequences where sequence_name={0}; \r\n", seqname)) + .Append("if IS").Append(seqname).Append(" > 0 then \r\n") .Append(" execute immediate 'DROP SEQUENCE ").Append(_commonUtils.QuoteSqlName(seqname)).Append("';\r\n") .Append("end if; \r\n"); }; @@ -396,12 +396,12 @@ and not exists(select 1 from all_constraints where constraint_name = a.index_nam { if (dicDeclare.ContainsKey(tiggerName) == false) { - sbDeclare.Append("\r\n").Append(tiggerName).Append("IS NUMBER; \r\n"); + sbDeclare.Append("\r\nIS").Append(tiggerName).Append(" NUMBER; \r\n"); dicDeclare.Add(tiggerName, true); } - sb.Append(tiggerName).Append("IS := 0; \r\n") - .Append(" select count(1) into ").Append(tiggerName).Append(_commonUtils.FormatSql("IS from user_triggers where trigger_name={0}; \r\n", tiggerName)) - .Append("if ").Append(tiggerName).Append("IS > 0 then \r\n") + sb.Append("IS").Append(tiggerName).Append(" := 0; \r\n") + .Append(" select count(1) into IS").Append(tiggerName).Append(_commonUtils.FormatSql(" from user_triggers where trigger_name={0}; \r\n", tiggerName)) + .Append("if IS").Append(tiggerName).Append(" > 0 then \r\n") .Append(" execute immediate 'DROP TRIGGER ").Append(_commonUtils.QuoteSqlName(tiggerName)).Append("';\r\n") .Append("end if; \r\n"); }; diff --git a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs index 392f55bf..7e714a49 100644 --- a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs +++ b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLCodeFirst.cs @@ -167,7 +167,8 @@ namespace FreeSql.PostgreSQL } if (tb.Primarys.Any()) { - sb.Append(" \r\n CONSTRAINT ").Append(tbname[0]).Append("_").Append(tbname[1]).Append("_pkey PRIMARY KEY ("); + var pkname = $"{tbname[0]}_{tbname[1]}_pkey"; + sb.Append(" \r\n CONSTRAINT ").Append(_commonUtils.QuoteSqlName(pkname)).Append(" PRIMARY KEY ("); foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", "); sb.Remove(sb.Length - 2, 2).Append("),"); } @@ -364,7 +365,8 @@ where pg_namespace.nspname={0} and pg_class.relname={1} and pg_constraint.contyp } if (tb.Primarys.Any()) { - sb.Append(" \r\n CONSTRAINT ").Append(tbname[0]).Append("_").Append(tbname[1]).Append("_pkey PRIMARY KEY ("); + var pkname = $"{tbname[0]}_{tbname[1]}_pkey"; + sb.Append(" \r\n CONSTRAINT ").Append(_commonUtils.QuoteSqlName(pkname)).Append(" PRIMARY KEY ("); foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", "); sb.Remove(sb.Length - 2, 2).Append("),"); }