mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 17:20:49 +08:00 
			
		
		
		
	- 修复 Oracle/Dameng 登陆名为数字时候的 pk 命名问题;
This commit is contained in:
		@@ -121,13 +121,6 @@
 | 
				
			|||||||
            清空状态数据
 | 
					            清空状态数据
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:FreeSql.DbSet`1.RemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
 | 
					 | 
				
			||||||
            <summary>
 | 
					 | 
				
			||||||
            根据 lambda 条件删除数据
 | 
					 | 
				
			||||||
            </summary>
 | 
					 | 
				
			||||||
            <param name="predicate"></param>
 | 
					 | 
				
			||||||
            <returns></returns>
 | 
					 | 
				
			||||||
        </member>
 | 
					 | 
				
			||||||
        <member name="M:FreeSql.DbSet`1.Add(`0)">
 | 
					        <member name="M:FreeSql.DbSet`1.Add(`0)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            添加
 | 
					            添加
 | 
				
			||||||
@@ -222,15 +215,6 @@
 | 
				
			|||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:FreeSql.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
 | 
					 | 
				
			||||||
            <summary>
 | 
					 | 
				
			||||||
            批量注入 Repository,可以参考代码自行调整
 | 
					 | 
				
			||||||
            </summary>
 | 
					 | 
				
			||||||
            <param name="services"></param>
 | 
					 | 
				
			||||||
            <param name="globalDataFilter"></param>
 | 
					 | 
				
			||||||
            <param name="assemblies"></param>
 | 
					 | 
				
			||||||
            <returns></returns>
 | 
					 | 
				
			||||||
        </member>
 | 
					 | 
				
			||||||
        <member name="P:FreeSql.IBaseRepository.Orm">
 | 
					        <member name="P:FreeSql.IBaseRepository.Orm">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            注意:IFreeSql 属于顶级对象,事务无法自动传递。<para></para>
 | 
					            注意:IFreeSql 属于顶级对象,事务无法自动传递。<para></para>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,55 +27,108 @@ namespace FreeSql.Tests.Odbc.Dameng
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void <EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>_<EFBFBD>ֶ<EFBFBD>()
 | 
					        public void <EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>_<EFBFBD>ֶ<EFBFBD>()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>();
 | 
					            var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>>();
 | 
				
			||||||
            g.dameng.CodeFirst.SyncStructure<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>();
 | 
					            g.dameng.CodeFirst.SyncStructure<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var item = new <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
 | 
					            var item = new <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                <EFBFBD><EFBFBD><EFBFBD><EFBFBD> = "<22><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>",
 | 
					                <EFBFBD><EFBFBD><EFBFBD><EFBFBD> = "<22><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>",
 | 
				
			||||||
                <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> = DateTime.Now
 | 
					                <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> = DateTime.Now
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
            Assert.Equal(1, g.dameng.Insert<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>().AppendData(item).ExecuteAffrows());
 | 
					            Assert.Equal(1, g.dameng.Insert<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>>().AppendData(item).ExecuteAffrows());
 | 
				
			||||||
            Assert.NotEqual(Guid.Empty, item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
					            Assert.NotEqual(Guid.Empty, item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
				
			||||||
            var item2 = g.dameng.Select<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>().Where(a => a.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> == item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).First();
 | 
					            var item2 = g.dameng.Select<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>>().Where(a => a.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> == item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).First();
 | 
				
			||||||
            Assert.NotNull(item2);
 | 
					            Assert.NotNull(item2);
 | 
				
			||||||
            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
					            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
				
			||||||
            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
					            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = "<22><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
 | 
					            item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = "<22><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
 | 
				
			||||||
            Assert.Equal(1, g.dameng.Update<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>().SetSource(item).ExecuteAffrows());
 | 
					            Assert.Equal(1, g.dameng.Update<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>>().SetSource(item).ExecuteAffrows());
 | 
				
			||||||
            item2 = g.dameng.Select<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>().Where(a => a.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> == item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).First();
 | 
					            item2 = g.dameng.Select<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>>().Where(a => a.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> == item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).First();
 | 
				
			||||||
            Assert.NotNull(item2);
 | 
					            Assert.NotNull(item2);
 | 
				
			||||||
            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
					            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
				
			||||||
            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
					            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = "<22><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_repo";
 | 
					            item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = "<22><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_repo";
 | 
				
			||||||
            var repo = g.dameng.GetRepository<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>();
 | 
					            var repo = g.dameng.GetRepository<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>>();
 | 
				
			||||||
            Assert.Equal(1, repo.Update(item));
 | 
					            Assert.Equal(1, repo.Update(item));
 | 
				
			||||||
            item2 = g.dameng.Select<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>().Where(a => a.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> == item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).First();
 | 
					            item2 = g.dameng.Select<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>>().Where(a => a.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> == item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).First();
 | 
				
			||||||
            Assert.NotNull(item2);
 | 
					            Assert.NotNull(item2);
 | 
				
			||||||
            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
					            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
				
			||||||
            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
					            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = "<22><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_repo22";
 | 
					            item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = "<22><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_repo22";
 | 
				
			||||||
            Assert.Equal(1, repo.Update(item));
 | 
					            Assert.Equal(1, repo.Update(item));
 | 
				
			||||||
            item2 = g.dameng.Select<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>().Where(a => a.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> == item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).First();
 | 
					            item2 = g.dameng.Select<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>>().Where(a => a.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> == item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).First();
 | 
				
			||||||
            Assert.NotNull(item2);
 | 
					            Assert.NotNull(item2);
 | 
				
			||||||
            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
					            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
				
			||||||
            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
					            Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        class <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
 | 
					        [Table(Name = "123<32><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>")]
 | 
				
			||||||
 | 
					        class <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            [Column(IsPrimary = true)]
 | 
					            [Column(IsPrimary = true, Name = "123<32><33><EFBFBD><EFBFBD>")]
 | 
				
			||||||
            public Guid <EFBFBD><EFBFBD><EFBFBD><EFBFBD> { get; set; }
 | 
					            public Guid <EFBFBD><EFBFBD><EFBFBD><EFBFBD> { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            [Column(Name = "123<32><33><EFBFBD><EFBFBD>")]
 | 
				
			||||||
            public string <EFBFBD><EFBFBD><EFBFBD><EFBFBD> { get; set; }
 | 
					            public string <EFBFBD><EFBFBD><EFBFBD><EFBFBD> { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            [Column(Name = "123<32><33><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>")]
 | 
				
			||||||
            public DateTime <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> { get; set; }
 | 
					            public DateTime <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> { get; set; }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //[Fact]
 | 
				
			||||||
 | 
					        //public void <20><><EFBFBD>ı<EFBFBD>_<EFBFBD>ֶ<EFBFBD>()
 | 
				
			||||||
 | 
					        //{
 | 
				
			||||||
 | 
					        //    var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>();
 | 
				
			||||||
 | 
					        //    g.dameng.CodeFirst.SyncStructure<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //    var item = new <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
 | 
				
			||||||
 | 
					        //    {
 | 
				
			||||||
 | 
					        //        <20><><EFBFBD><EFBFBD> = "<22><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>",
 | 
				
			||||||
 | 
					        //        <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> = DateTime.Now
 | 
				
			||||||
 | 
					        //    };
 | 
				
			||||||
 | 
					        //    Assert.Equal(1, g.dameng.Insert<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>().AppendData(item).ExecuteAffrows());
 | 
				
			||||||
 | 
					        //    Assert.NotEqual(Guid.Empty, item.<2E><><EFBFBD><EFBFBD>);
 | 
				
			||||||
 | 
					        //    var item2 = g.dameng.Select<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>().Where(a => a.<2E><><EFBFBD><EFBFBD> == item.<2E><><EFBFBD><EFBFBD>).First();
 | 
				
			||||||
 | 
					        //    Assert.NotNull(item2);
 | 
				
			||||||
 | 
					        //    Assert.Equal(item.<2E><><EFBFBD><EFBFBD>, item2.<2E><><EFBFBD><EFBFBD>);
 | 
				
			||||||
 | 
					        //    Assert.Equal(item.<2E><><EFBFBD><EFBFBD>, item2.<2E><><EFBFBD><EFBFBD>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //    item.<2E><><EFBFBD><EFBFBD> = "<22><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
 | 
				
			||||||
 | 
					        //    Assert.Equal(1, g.dameng.Update<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>().SetSource(item).ExecuteAffrows());
 | 
				
			||||||
 | 
					        //    item2 = g.dameng.Select<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>().Where(a => a.<2E><><EFBFBD><EFBFBD> == item.<2E><><EFBFBD><EFBFBD>).First();
 | 
				
			||||||
 | 
					        //    Assert.NotNull(item2);
 | 
				
			||||||
 | 
					        //    Assert.Equal(item.<2E><><EFBFBD><EFBFBD>, item2.<2E><><EFBFBD><EFBFBD>);
 | 
				
			||||||
 | 
					        //    Assert.Equal(item.<2E><><EFBFBD><EFBFBD>, item2.<2E><><EFBFBD><EFBFBD>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //    item.<2E><><EFBFBD><EFBFBD> = "<22><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_repo";
 | 
				
			||||||
 | 
					        //    var repo = g.dameng.GetRepository<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>();
 | 
				
			||||||
 | 
					        //    Assert.Equal(1, repo.Update(item));
 | 
				
			||||||
 | 
					        //    item2 = g.dameng.Select<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>().Where(a => a.<2E><><EFBFBD><EFBFBD> == item.<2E><><EFBFBD><EFBFBD>).First();
 | 
				
			||||||
 | 
					        //    Assert.NotNull(item2);
 | 
				
			||||||
 | 
					        //    Assert.Equal(item.<2E><><EFBFBD><EFBFBD>, item2.<2E><><EFBFBD><EFBFBD>);
 | 
				
			||||||
 | 
					        //    Assert.Equal(item.<2E><><EFBFBD><EFBFBD>, item2.<2E><><EFBFBD><EFBFBD>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //    item.<2E><><EFBFBD><EFBFBD> = "<22><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_repo22";
 | 
				
			||||||
 | 
					        //    Assert.Equal(1, repo.Update(item));
 | 
				
			||||||
 | 
					        //    item2 = g.dameng.Select<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>>().Where(a => a.<2E><><EFBFBD><EFBFBD> == item.<2E><><EFBFBD><EFBFBD>).First();
 | 
				
			||||||
 | 
					        //    Assert.NotNull(item2);
 | 
				
			||||||
 | 
					        //    Assert.Equal(item.<2E><><EFBFBD><EFBFBD>, item2.<2E><><EFBFBD><EFBFBD>);
 | 
				
			||||||
 | 
					        //    Assert.Equal(item.<2E><><EFBFBD><EFBFBD>, item2.<2E><><EFBFBD><EFBFBD>);
 | 
				
			||||||
 | 
					        //}
 | 
				
			||||||
 | 
					        //class <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
 | 
				
			||||||
 | 
					        //{
 | 
				
			||||||
 | 
					        //    [Column(IsPrimary = true)]
 | 
				
			||||||
 | 
					        //    public Guid <20><><EFBFBD><EFBFBD> { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //    public string <20><><EFBFBD><EFBFBD> { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //    public DateTime <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> { get; set; }
 | 
				
			||||||
 | 
					        //}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void AddUniques()
 | 
					        public void AddUniques()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -70,8 +70,8 @@ public class g
 | 
				
			|||||||
    public static IFreeSql odbc => odbcLazy.Value;
 | 
					    public static IFreeSql odbc => odbcLazy.Value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static Lazy<IFreeSql> damemgLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder()
 | 
					    static Lazy<IFreeSql> damemgLazy = new Lazy<IFreeSql>(() => 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")
 | 
					        .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=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=123USER1;PWD=123456789"))
 | 
				
			||||||
        .UseAutoSyncStructure(true)
 | 
					        .UseAutoSyncStructure(true)
 | 
				
			||||||
        .UseLazyLoading(true)
 | 
					        .UseLazyLoading(true)
 | 
				
			||||||
        .UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper)
 | 
					        .UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper)
 | 
				
			||||||
@@ -85,8 +85,8 @@ public class g
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    //启动南大通用数据库 oninit -vy
 | 
					    //启动南大通用数据库 oninit -vy
 | 
				
			||||||
    static Lazy<IFreeSql> gbaseLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder()
 | 
					    static Lazy<IFreeSql> gbaseLazy = new Lazy<IFreeSql>(() => 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")
 | 
					        .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=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=123USER1;PWD=123456789"))
 | 
				
			||||||
        .UseAutoSyncStructure(true)
 | 
					        .UseAutoSyncStructure(true)
 | 
				
			||||||
        .UseLazyLoading(true)
 | 
					        .UseLazyLoading(true)
 | 
				
			||||||
        .UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper)
 | 
					        .UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -55,8 +55,8 @@ public class g
 | 
				
			|||||||
    public static IFreeSql sqlserver => sqlserverLazy.Value;
 | 
					    public static IFreeSql sqlserver => sqlserverLazy.Value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static Lazy<IFreeSql> oracleLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder()
 | 
					    static Lazy<IFreeSql> oracleLazy = new Lazy<IFreeSql>(() => 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")
 | 
					        .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=user1;password=123456;data source=//127.0.0.1:1521/XE;Pooling=true;"))
 | 
					        //.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)
 | 
					        .UseAutoSyncStructure(true)
 | 
				
			||||||
        //.UseGenerateCommandParameterWithLambda(true)
 | 
					        //.UseGenerateCommandParameterWithLambda(true)
 | 
				
			||||||
        .UseLazyLoading(true)
 | 
					        .UseLazyLoading(true)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -139,7 +139,7 @@ namespace FreeSql.Odbc.Dameng
 | 
				
			|||||||
                        if (tb.Primarys.Any())
 | 
					                        if (tb.Primarys.Any())
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            var pkname = primaryKeyName ?? $"{tbname[0]}_{tbname[1]}_pk1";
 | 
					                            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(", ");
 | 
					                            foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", ");
 | 
				
			||||||
                            sb.Remove(sb.Length - 2, 2).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())
 | 
					                if (tb.Primarys.Any())
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    var pkname = primaryKeyName ?? $"{tbname[0]}_{tbname[1]}_pk2";
 | 
					                    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(", ");
 | 
					                    foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", ");
 | 
				
			||||||
                    sb.Remove(sb.Length - 2, 2).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)
 | 
					                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);
 | 
					                    dicDeclare.Add(seqname, true);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                sb.Append(seqname).Append("IS := 0; \r\n")
 | 
					                sb.Append("IS").Append(seqname).Append(" := 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(" select count(1) into IS").Append(seqname).Append(_commonUtils.FormatSql(" from user_sequences where sequence_name={0}; \r\n", seqname))
 | 
				
			||||||
                    .Append("if ").Append(seqname).Append("IS > 0 then \r\n")
 | 
					                    .Append("if IS").Append(seqname).Append(" > 0 then \r\n")
 | 
				
			||||||
                    .Append("  execute immediate 'DROP SEQUENCE ").Append(_commonUtils.QuoteSqlName(seqname)).Append("';\r\n")
 | 
					                    .Append("  execute immediate 'DROP SEQUENCE ").Append(_commonUtils.QuoteSqlName(seqname)).Append("';\r\n")
 | 
				
			||||||
                    .Append("end if; \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)
 | 
					                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);
 | 
					                    dicDeclare.Add(tiggerName, true);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                sb.Append(tiggerName).Append("IS := 0; \r\n")
 | 
					                sb.Append("IS").Append(tiggerName).Append(" := 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(" select count(1) into IS").Append(tiggerName).Append(_commonUtils.FormatSql(" from user_triggers where trigger_name={0}; \r\n", tiggerName))
 | 
				
			||||||
                    .Append("if ").Append(tiggerName).Append("IS > 0 then \r\n")
 | 
					                    .Append("if IS").Append(tiggerName).Append(" > 0 then \r\n")
 | 
				
			||||||
                    .Append("  execute immediate 'DROP TRIGGER ").Append(_commonUtils.QuoteSqlName(tiggerName)).Append("';\r\n")
 | 
					                    .Append("  execute immediate 'DROP TRIGGER ").Append(_commonUtils.QuoteSqlName(tiggerName)).Append("';\r\n")
 | 
				
			||||||
                    .Append("end if; \r\n");
 | 
					                    .Append("end if; \r\n");
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -139,7 +139,7 @@ namespace FreeSql.Odbc.Oracle
 | 
				
			|||||||
                        if (tb.Primarys.Any())
 | 
					                        if (tb.Primarys.Any())
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            var pkname = primaryKeyName ?? $"{tbname[0]}_{tbname[1]}_pk1";
 | 
					                            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(", ");
 | 
					                            foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", ");
 | 
				
			||||||
                            sb.Remove(sb.Length - 2, 2).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())
 | 
					                if (tb.Primarys.Any())
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    var pkname = primaryKeyName ?? $"{tbname[0]}_{tbname[1]}_pk2";
 | 
					                    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(", ");
 | 
					                    foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", ");
 | 
				
			||||||
                    sb.Remove(sb.Length - 2, 2).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)
 | 
					                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);
 | 
					                    dicDeclare.Add(seqname, true);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                sb.Append(seqname).Append("IS := 0; \r\n")
 | 
					                sb.Append("IS").Append(seqname).Append(" := 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(" select count(1) into IS").Append(seqname).Append(_commonUtils.FormatSql(" from user_sequences where sequence_name={0}; \r\n", seqname))
 | 
				
			||||||
                    .Append("if ").Append(seqname).Append("IS > 0 then \r\n")
 | 
					                    .Append("if IS").Append(seqname).Append(" > 0 then \r\n")
 | 
				
			||||||
                    .Append("  execute immediate 'DROP SEQUENCE ").Append(_commonUtils.QuoteSqlName(seqname)).Append("';\r\n")
 | 
					                    .Append("  execute immediate 'DROP SEQUENCE ").Append(_commonUtils.QuoteSqlName(seqname)).Append("';\r\n")
 | 
				
			||||||
                    .Append("end if; \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)
 | 
					                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);
 | 
					                    dicDeclare.Add(tiggerName, true);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                sb.Append(tiggerName).Append("IS := 0; \r\n")
 | 
					                sb.Append("IS").Append(tiggerName).Append(" := 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(" select count(1) into IS").Append(tiggerName).Append(_commonUtils.FormatSql(" from user_triggers where trigger_name={0}; \r\n", tiggerName))
 | 
				
			||||||
                    .Append("if ").Append(tiggerName).Append("IS > 0 then \r\n")
 | 
					                    .Append("if IS").Append(tiggerName).Append(" > 0 then \r\n")
 | 
				
			||||||
                    .Append("  execute immediate 'DROP TRIGGER ").Append(_commonUtils.QuoteSqlName(tiggerName)).Append("';\r\n")
 | 
					                    .Append("  execute immediate 'DROP TRIGGER ").Append(_commonUtils.QuoteSqlName(tiggerName)).Append("';\r\n")
 | 
				
			||||||
                    .Append("end if; \r\n");
 | 
					                    .Append("end if; \r\n");
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -132,7 +132,8 @@ namespace FreeSql.Odbc.PostgreSQL
 | 
				
			|||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (tb.Primarys.Any())
 | 
					                        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(", ");
 | 
					                            foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", ");
 | 
				
			||||||
                            sb.Remove(sb.Length - 2, 2).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())
 | 
					                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(", ");
 | 
					                    foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", ");
 | 
				
			||||||
                    sb.Remove(sb.Length - 2, 2).Append("),");
 | 
					                    sb.Remove(sb.Length - 2, 2).Append("),");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -140,7 +140,7 @@ namespace FreeSql.Oracle
 | 
				
			|||||||
                        if (tb.Primarys.Any())
 | 
					                        if (tb.Primarys.Any())
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            var pkname = primaryKeyName ?? $"{tbname[0]}_{tbname[1]}_pk1";
 | 
					                            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(", ");
 | 
					                            foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", ");
 | 
				
			||||||
                            sb.Remove(sb.Length - 2, 2).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())
 | 
					                if (tb.Primarys.Any())
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    var pkname = primaryKeyName ?? $"{tbname[0]}_{tbname[1]}_pk2";
 | 
					                    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(", ");
 | 
					                    foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", ");
 | 
				
			||||||
                    sb.Remove(sb.Length - 2, 2).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)
 | 
					                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);
 | 
					                    dicDeclare.Add(seqname, true);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                sb.Append(seqname).Append("IS := 0; \r\n")
 | 
					                sb.Append("IS").Append(seqname).Append(" := 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(" select count(1) into IS").Append(seqname).Append(_commonUtils.FormatSql(" from user_sequences where sequence_name={0}; \r\n", seqname))
 | 
				
			||||||
                    .Append("if ").Append(seqname).Append("IS > 0 then \r\n")
 | 
					                    .Append("if IS").Append(seqname).Append(" > 0 then \r\n")
 | 
				
			||||||
                    .Append("  execute immediate 'DROP SEQUENCE ").Append(_commonUtils.QuoteSqlName(seqname)).Append("';\r\n")
 | 
					                    .Append("  execute immediate 'DROP SEQUENCE ").Append(_commonUtils.QuoteSqlName(seqname)).Append("';\r\n")
 | 
				
			||||||
                    .Append("end if; \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)
 | 
					                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);
 | 
					                    dicDeclare.Add(tiggerName, true);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                sb.Append(tiggerName).Append("IS := 0; \r\n")
 | 
					                sb.Append("IS").Append(tiggerName).Append(" := 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(" select count(1) into IS").Append(tiggerName).Append(_commonUtils.FormatSql(" from user_triggers where trigger_name={0}; \r\n", tiggerName))
 | 
				
			||||||
                    .Append("if ").Append(tiggerName).Append("IS > 0 then \r\n")
 | 
					                    .Append("if IS").Append(tiggerName).Append(" > 0 then \r\n")
 | 
				
			||||||
                    .Append("  execute immediate 'DROP TRIGGER ").Append(_commonUtils.QuoteSqlName(tiggerName)).Append("';\r\n")
 | 
					                    .Append("  execute immediate 'DROP TRIGGER ").Append(_commonUtils.QuoteSqlName(tiggerName)).Append("';\r\n")
 | 
				
			||||||
                    .Append("end if; \r\n");
 | 
					                    .Append("end if; \r\n");
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -167,7 +167,8 @@ namespace FreeSql.PostgreSQL
 | 
				
			|||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (tb.Primarys.Any())
 | 
					                        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(", ");
 | 
					                            foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", ");
 | 
				
			||||||
                            sb.Remove(sb.Length - 2, 2).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())
 | 
					                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(", ");
 | 
					                    foreach (var tbcol in tb.Primarys) sb.Append(_commonUtils.QuoteSqlName(tbcol.Attribute.Name)).Append(", ");
 | 
				
			||||||
                    sb.Remove(sb.Length - 2, 2).Append("),");
 | 
					                    sb.Remove(sb.Length - 2, 2).Append("),");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user