From f4418241a6ee1d7689c585460a9cbbe6fb27724e Mon Sep 17 00:00:00 2001 From: LambertW <26795806@qq.com> Date: Fri, 15 Mar 2019 21:37:42 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=AE=8C=E6=AF=95?= =?UTF-8?q?=EF=BC=8C=E6=B8=85=E7=A9=BASql=20Server=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E8=A1=A8=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataContext/SqlServer/SqlServerFixture.cs | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs b/FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs index 1b3845c7..ea5dba1a 100644 --- a/FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs +++ b/FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Text; namespace FreeSql.Tests.DataContext.SqlServer @@ -9,8 +10,8 @@ namespace FreeSql.Tests.DataContext.SqlServer public SqlServerFixture() { sqlServerLazy = new Lazy(() => new FreeSql.FreeSqlBuilder() - .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=10") - //.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=(localdb)\\mssqllocaldb;Integrated Security=True;Initial Catalog=cms;Pooling=true;Max Pool Size=10") + //.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=10") + .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=(localdb)\\mssqllocaldb;Integrated Security=True;Initial Catalog=cms;Pooling=true;Max Pool Size=10") .UseAutoSyncStructure(true) .UseLazyLoading(true) .Build()); @@ -21,6 +22,30 @@ namespace FreeSql.Tests.DataContext.SqlServer public void Dispose() { // ... clean up test data from the database ... + var dataTables = SqlServer.DbFirst.GetTablesByDatabase(SqlServer.DbFirst.GetDatabases()[0]); + if (dataTables.Any(item => item.Name == "TopicAddField" && item.Schema == "dbo2")) + { + SqlServer.Ado.ExecuteNonQuery("TRUNCATE TABLE dbo2.TopicAddField "); + SqlServer.Ado.ExecuteNonQuery("DROP TABLE dbo2.TopicAddField"); + SqlServer.Ado.ExecuteNonQuery("DROP SCHEMA dbo2"); + } + + var tempTables = new string[] { "cccccdddwww", "song", "tb_alltype", "tb_topic", "tb_topic22", + "tb_topic22211", "tb_topic111333", "TestTypeInfo", "TestTypeInfo333", "TestTypeParentInfo", + "TestTypeParentInfo23123", "xxdkdkdk1222", "xxx"}; + foreach (var tempTable in tempTables) + { + DeleteTmpTable(dataTables, tempTable); + } + } + + private void DeleteTmpTable(List dbTables, string deleteTableName, string schemaName = "dbo") + { + if (dbTables.Any(item => item.Name.ToLower() == deleteTableName.ToLower() && item.Schema.ToLower() == schemaName.ToLower())) + { + SqlServer.Ado.ExecuteNonQuery($"TRUNCATE TABLE {schemaName.ToLower()}.{deleteTableName}"); + SqlServer.Ado.ExecuteNonQuery($"DROP TABLE {schemaName.ToLower()}.{deleteTableName}"); + } } private Lazy sqlServerLazy; From 9fd850c81cd483cb6c1aa6eb61dd75c9bb2749dc Mon Sep 17 00:00:00 2001 From: LambertW <26795806@qq.com> Date: Fri, 15 Mar 2019 21:44:59 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0SqlServerFluentTest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{FluentTest.cs => MySqlFluentTest.cs} | 24 +++---- .../DataAnnotations/SqlServerFluentTest.cs | 66 +++++++++++++++++++ FreeSql.Tests/FreeSql.Tests.csproj | 2 + 3 files changed, 81 insertions(+), 11 deletions(-) rename FreeSql.Tests/DataAnnotations/{FluentTest.cs => MySqlFluentTest.cs} (79%) create mode 100644 FreeSql.Tests/DataAnnotations/SqlServerFluentTest.cs diff --git a/FreeSql.Tests/DataAnnotations/FluentTest.cs b/FreeSql.Tests/DataAnnotations/MySqlFluentTest.cs similarity index 79% rename from FreeSql.Tests/DataAnnotations/FluentTest.cs rename to FreeSql.Tests/DataAnnotations/MySqlFluentTest.cs index bc522806..9d098d45 100644 --- a/FreeSql.Tests/DataAnnotations/FluentTest.cs +++ b/FreeSql.Tests/DataAnnotations/MySqlFluentTest.cs @@ -2,7 +2,7 @@ using FreeSql.DataAnnotations; using Xunit; namespace FreeSql.Tests.DataAnnotations { - public class FluentTest { + public class MySqlFluentTest { [Fact] public void Fluent() { g.mysql.CodeFirst @@ -35,19 +35,21 @@ namespace FreeSql.Tests.DataAnnotations { var t2affrows = g.mysql.Insert().AppendData(new TestFluenttb2 { Id = t2lastId + 1 }).ExecuteAffrows(); var t2 = g.mysql.Select(t2lastId + 1).ToOne(); } - } - class TestFluenttb1 { - public int Id { get; set; } + class TestFluenttb1 + { + public int Id { get; set; } - public string name { get; set; } = "defaultValue"; - } + public string name { get; set; } = "defaultValue"; + } - [Table(Name = "cccccdddwww")] - class TestFluenttb2 { - [Column(Name = "Idx", IsPrimary = true, IsIdentity = false)] - public int Id { get; set; } + [Table(Name = "cccccdddwww")] + class TestFluenttb2 + { + [Column(Name = "Idx", IsPrimary = true, IsIdentity = false)] + public int Id { get; set; } - public string name { get; set; } = "defaultValue"; + public string name { get; set; } = "defaultValue"; + } } } diff --git a/FreeSql.Tests/DataAnnotations/SqlServerFluentTest.cs b/FreeSql.Tests/DataAnnotations/SqlServerFluentTest.cs new file mode 100644 index 00000000..3a550775 --- /dev/null +++ b/FreeSql.Tests/DataAnnotations/SqlServerFluentTest.cs @@ -0,0 +1,66 @@ +using FreeSql.DataAnnotations; +using FreeSql.Tests.DataContext.SqlServer; +using Xunit; + +namespace FreeSql.Tests.DataAnnotations { + [Collection("SqlServerCollection")] + public class SqlServerFluentTest { + + SqlServerFixture _sqlserverFixture; + + public SqlServerFluentTest(SqlServerFixture sqlserverFixture) + { + _sqlserverFixture = sqlserverFixture; + } + + [Fact] + public void Fluent() { + _sqlserverFixture.SqlServer.CodeFirst + //.ConfigEntity(a => { + // a.Name("xxdkdkdk1").SelectFilter("a.Id22 > 0"); + // a.Property(b => b.Id).Name("Id22").IsIdentity(true); + // a.Property(b => b.name).DbType("varchar(100)").IsNullable(true); + //}) + + .ConfigEntity(typeof(TestFluenttb1), a => { + a.Name("xxdkdkdk1222").SelectFilter("a.Id22dd > 1"); + a.Property("Id").Name("Id22dd").IsIdentity(true); + a.Property("Name").DbType("varchar(101)").IsNullable(true); + }) + + .ConfigEntity(a => { + a.Name("xxdkdkdk2").SelectFilter("a.Idx > 0"); + a.Property(b => b.Id).Name("Id22").IsIdentity(true); + a.Property(b => b.name).DbType("varchar(100)").IsNullable(true); + }) + ; + + var ddl1 = _sqlserverFixture.SqlServer.CodeFirst.GetComparisonDDLStatements(); + var ddl2 = _sqlserverFixture.SqlServer.CodeFirst.GetComparisonDDLStatements(); + + var t1id = _sqlserverFixture.SqlServer.Insert().AppendData(new TestFluenttb1 { }).ExecuteIdentity(); + var t1 = _sqlserverFixture.SqlServer.Select(t1id).ToOne(); + + var t2lastId = _sqlserverFixture.SqlServer.Select().Max(a => a.Id); + var t2affrows = _sqlserverFixture.SqlServer.Insert().AppendData(new TestFluenttb2 { Id = t2lastId + 1 }).ExecuteAffrows(); + var t2 = _sqlserverFixture.SqlServer.Select(t2lastId + 1).ToOne(); + } + + class TestFluenttb1 + { + public int Id { get; set; } + + public string name { get; set; } = "defaultValue"; + } + + [Table(Name = "cccccdddwww")] + class TestFluenttb2 + { + [Column(Name = "Idx", IsPrimary = true, IsIdentity = false)] + public int Id { get; set; } + + public string name { get; set; } = "defaultValue"; + } + } + +} diff --git a/FreeSql.Tests/FreeSql.Tests.csproj b/FreeSql.Tests/FreeSql.Tests.csproj index 56f55744..30abb7c1 100644 --- a/FreeSql.Tests/FreeSql.Tests.csproj +++ b/FreeSql.Tests/FreeSql.Tests.csproj @@ -18,6 +18,8 @@ + + From f4ea05b2043ed02d049ed78821d66363f646f7b0 Mon Sep 17 00:00:00 2001 From: LambertWu <26795806@qq.com> Date: Fri, 15 Mar 2019 23:26:19 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8DDatabase=E7=B4=A2?= =?UTF-8?q?=E5=BC=95=E5=BC=82=E5=B8=B8=E5=AF=BC=E8=87=B4=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E6=B8=85=E9=99=A4=E6=B5=8B=E8=AF=95=E6=95=B0=E6=8D=AE=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataContext/SqlServer/SqlServerFixture.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs b/FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs index ea5dba1a..f47b5991 100644 --- a/FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs +++ b/FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs @@ -11,7 +11,7 @@ namespace FreeSql.Tests.DataContext.SqlServer { sqlServerLazy = new Lazy(() => new FreeSql.FreeSqlBuilder() //.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=10") - .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=(localdb)\\mssqllocaldb;Integrated Security=True;Initial Catalog=cms;Pooling=true;Max Pool Size=10") + .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=(localdb)\\mssqllocaldb;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=10") .UseAutoSyncStructure(true) .UseLazyLoading(true) .Build()); @@ -22,7 +22,17 @@ namespace FreeSql.Tests.DataContext.SqlServer public void Dispose() { // ... clean up test data from the database ... - var dataTables = SqlServer.DbFirst.GetTablesByDatabase(SqlServer.DbFirst.GetDatabases()[0]); + ClearDataBase(); + } + + private void ClearDataBase() + { + var operateDataBase = "freesqlTest"; + var dataBases = SqlServer.DbFirst.GetDatabases(); + if (!dataBases.Any(t => t == operateDataBase)) + return; + + var dataTables = SqlServer.DbFirst.GetTablesByDatabase(dataBases.First(t => t == operateDataBase)); if (dataTables.Any(item => item.Name == "TopicAddField" && item.Schema == "dbo2")) { SqlServer.Ado.ExecuteNonQuery("TRUNCATE TABLE dbo2.TopicAddField "); From 4fe1807a4260321d69b98c35347345dd85a5f805 Mon Sep 17 00:00:00 2001 From: LambertWu <26795806@qq.com> Date: Fri, 15 Mar 2019 23:43:41 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96ClearDataBase()=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E3=80=82=E7=A7=BB=E9=99=A4=E6=8C=87=E5=AE=9A=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs b/FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs index f47b5991..a17e6bf8 100644 --- a/FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs +++ b/FreeSql.Tests/DataContext/SqlServer/SqlServerFixture.cs @@ -27,12 +27,7 @@ namespace FreeSql.Tests.DataContext.SqlServer private void ClearDataBase() { - var operateDataBase = "freesqlTest"; - var dataBases = SqlServer.DbFirst.GetDatabases(); - if (!dataBases.Any(t => t == operateDataBase)) - return; - - var dataTables = SqlServer.DbFirst.GetTablesByDatabase(dataBases.First(t => t == operateDataBase)); + var dataTables = SqlServer.DbFirst.GetTablesByDatabase(); if (dataTables.Any(item => item.Name == "TopicAddField" && item.Schema == "dbo2")) { SqlServer.Ado.ExecuteNonQuery("TRUNCATE TABLE dbo2.TopicAddField ");