Selaa lähdekoodia

[Release] Vitorm release/2.0.4

Lith 9 kuukautta sitten
vanhempi
commit
80ddd408a3

+ 3 - 0
README.md

@@ -36,6 +36,7 @@ supported features:
 | --- | --- | --- | --- |
 |  create table   |  TryCreateTable   |     |     |
 |  drop table   |  TryDropTable   |     |     |
+|  truncate table   |  Truncate   |     |     |
 | --- | --- | --- | --- |
 |  create records   |  Add AddRange   |     |     |
 |  retrieve  records |  Query Get   |     |     |
@@ -143,6 +144,7 @@ namespace App
             dbContext.DeleteByKeys<User, int>(new[] { 1, 2 });
             dbContext.Query<User>().Where(u => u.name.Contains("li"))
                 .ExecuteDelete();
+            dbContext.Truncate<User>();
 
             // #7 Join Queries
             {
@@ -326,6 +328,7 @@ namespace App
             Data.DeleteByKeys<User, int>(new[] { 1, 2 });
             Data.Query<User>().Where(u => u.name.Contains("li"))
                 .ExecuteDelete();
+            Data.Truncate<User>();
 
             // #7 Join Queries
             {

+ 6 - 0
doc/ReleaseLog.md

@@ -1,6 +1,12 @@
 # Vitorm ReleaseLog
 
 
+
+-----------------------
+# 2.0.4
+- [Vitorm] support Truncate
+
+
 -----------------------
 # 2.0.3
 - [Vitorm] StreamReader support custom methodCallConvertor and add test case

+ 1 - 0
src/Vitorm.Data/Data.cs

@@ -111,6 +111,7 @@ namespace Vitorm
         // #0 Schema :  TryCreateTable TryDropTable
         public static void TryCreateTable<Entity>() => DataProvider<Entity>().TryCreateTable<Entity>();
         public static void TryDropTable<Entity>() => DataProvider<Entity>().TryDropTable<Entity>();
+        public static void Truncate<Entity>() => DataProvider<Entity>().Truncate<Entity>();
 
 
         // #1 Create :  Add AddRange

+ 1 - 0
src/Vitorm.Data/README.md

@@ -124,6 +124,7 @@ namespace App
             Data.DeleteByKeys<User, int>(new[] { 1, 2 });
             Data.Query<User>().Where(u => u.name.Contains("li"))
                 .ExecuteDelete();
+            Data.Truncate<User>();
 
             // #7 Join Queries
             {

+ 1 - 1
src/Vitorm.Data/Vitorm.Data.csproj

@@ -6,7 +6,7 @@
 
     <PropertyGroup>
         <TargetFramework>netstandard2.0</TargetFramework>
-        <Version>2.0.3</Version>
+        <Version>2.0.4</Version>
         <LangVersion>9.0</LangVersion>
     </PropertyGroup>
 

+ 1 - 1
src/Vitorm.EntityGenerate/Vitorm.EntityGenerate.csproj

@@ -6,7 +6,7 @@
 
     <PropertyGroup>
         <TargetFramework>netstandard2.0</TargetFramework>
-        <Version>2.0.3</Version>
+        <Version>2.0.4</Version>
         <LangVersion>9.0</LangVersion>
     </PropertyGroup>
 

+ 2 - 0
src/Vitorm.MySql/README.md

@@ -133,6 +133,7 @@ namespace App
             dbContext.DeleteByKeys<User, int>(new[] { 1, 2 });
             dbContext.Query<User>().Where(u => u.name.Contains("li"))
                 .ExecuteDelete();
+            dbContext.Truncate<User>();
 
             // #7 Join Queries
             {
@@ -308,6 +309,7 @@ namespace App
             Data.DeleteByKeys<User, int>(new[] { 1, 2 });
             Data.Query<User>().Where(u => u.name.Contains("li"))
                 .ExecuteDelete();
+            Data.Truncate<User>();
 
             // #7 Join Queries
             {

+ 4 - 4
src/Vitorm.MySql/SqlTranslateService.cs

@@ -174,7 +174,7 @@ namespace Vitorm.MySql
         public override string PrepareTryCreateTable(IEntityDescriptor entityDescriptor)
         {
             /* //sql
-CREATE TABLE user (
+CREATE TABLE IF NOT EXISTS `User` (
   id int NOT NULL PRIMARY KEY,
   name varchar(100) DEFAULT NULL,
   birth date DEFAULT NULL,
@@ -192,7 +192,7 @@ CREATE TABLE user (
             entityDescriptor.columns?.ForEach(column => sqlFields.Add(GetColumnSql(column)));
 
             return $@"
-CREATE TABLE {DelimitTableName(entityDescriptor)} (
+CREATE TABLE IF NOT EXISTS {DelimitTableName(entityDescriptor)} (
 {string.Join(",\r\n  ", sqlFields)}
 )";
 
@@ -231,8 +231,8 @@ CREATE TABLE {DelimitTableName(entityDescriptor)} (
 
         public override string PrepareTryDropTable(IEntityDescriptor entityDescriptor)
         {
-            // DROP TABLE if exists `User`;
-            return $@" DROP TABLE if exists {DelimitTableName(entityDescriptor)};";
+            // drop table if exists `User`;
+            return $@"drop table if exists {DelimitTableName(entityDescriptor)};";
         }
 
 

+ 1 - 1
src/Vitorm.MySql/Vitorm.MySql.csproj

@@ -6,7 +6,7 @@
 
     <PropertyGroup>
         <TargetFramework>netstandard2.0</TargetFramework>
-        <Version>2.0.3</Version>
+        <Version>2.0.4</Version>
         <LangVersion>9.0</LangVersion>
     </PropertyGroup>
 

+ 2 - 0
src/Vitorm.SqlServer/README.md

@@ -133,6 +133,7 @@ namespace App
             dbContext.DeleteByKeys<User, int>(new[] { 1, 2 });
             dbContext.Query<User>().Where(u => u.name.Contains("li"))
                 .ExecuteDelete();
+            dbContext.Truncate<User>();
 
             // #7 Join Queries
             {
@@ -308,6 +309,7 @@ namespace App
             Data.DeleteByKeys<User, int>(new[] { 1, 2 });
             Data.Query<User>().Where(u => u.name.Contains("li"))
                 .ExecuteDelete();
+            Data.Truncate<User>();
 
             // #7 Join Queries
             {

+ 1 - 1
src/Vitorm.SqlServer/Vitorm.SqlServer.csproj

@@ -6,7 +6,7 @@
 
     <PropertyGroup>
         <TargetFramework>netstandard2.0</TargetFramework>
-        <Version>2.0.3</Version>
+        <Version>2.0.4</Version>
         <LangVersion>9.0</LangVersion>
     </PropertyGroup>
 

+ 2 - 0
src/Vitorm.Sqlite/README.md

@@ -133,6 +133,7 @@ namespace App
             dbContext.DeleteByKeys<User, int>(new[] { 1, 2 });
             dbContext.Query<User>().Where(u => u.name.Contains("li"))
                 .ExecuteDelete();
+            dbContext.Truncate<User>();
 
             // #7 Join Queries
             {
@@ -316,6 +317,7 @@ namespace App
             Data.DeleteByKeys<User, int>(new[] { 1, 2 });
             Data.Query<User>().Where(u => u.name.Contains("li"))
                 .ExecuteDelete();
+            Data.Truncate<User>();
 
             // #7 Join Queries
             {

+ 9 - 4
src/Vitorm.Sqlite/SqlTranslateService.cs

@@ -155,7 +155,7 @@ namespace Vitorm.Sqlite
         public override string PrepareTryCreateTable(IEntityDescriptor entityDescriptor)
         {
             /* //sql
-CREATE TABLE user (
+CREATE TABLE IF NOT EXISTS "User" (
   id int NOT NULL PRIMARY KEY,
   name varchar(100) DEFAULT NULL,
   birth date DEFAULT NULL,
@@ -172,7 +172,7 @@ CREATE TABLE user (
             entityDescriptor.columns?.ForEach(column => sqlFields.Add(GetColumnSql(column)));
 
             return $@"
-CREATE TABLE {DelimitTableName(entityDescriptor)} (
+CREATE TABLE IF NOT EXISTS {DelimitTableName(entityDescriptor)} (
 {string.Join(",\r\n  ", sqlFields)}
 )";
 
@@ -205,8 +205,13 @@ CREATE TABLE {DelimitTableName(entityDescriptor)} (
 
         public override string PrepareTryDropTable(IEntityDescriptor entityDescriptor)
         {
-            // DROP TABLE if exists "User";
-            return $@" DROP TABLE if exists {DelimitTableName(entityDescriptor)};";
+            // drop table if exists "User";
+            return $@"drop table if exists {DelimitTableName(entityDescriptor)};";
+        }
+        public override string PrepareTruncate(IEntityDescriptor entityDescriptor)
+        {
+            // delete from 'User';
+            return $@"delete from {DelimitTableName(entityDescriptor)};";
         }
 
     }

+ 1 - 1
src/Vitorm.Sqlite/Vitorm.Sqlite.csproj

@@ -6,7 +6,7 @@
 
     <PropertyGroup>
         <TargetFramework>netstandard2.0</TargetFramework>
-        <Version>2.0.3</Version>
+        <Version>2.0.4</Version>
         <LangVersion>9.0</LangVersion>
     </PropertyGroup>
 

+ 1 - 0
src/Vitorm/DataProvider/SqlDataProvider.cs

@@ -31,6 +31,7 @@ namespace Vitorm.DataProvider
         // #0 Schema :  Create
         public virtual void TryCreateTable<Entity>() => InvokeInDb(db => db.TryCreateTable<Entity>());
         public virtual void TryDropTable<Entity>() => InvokeInDb(db => db.TryDropTable<Entity>());
+        public virtual void Truncate<Entity>() => InvokeInDb(db => db.Truncate<Entity>());
 
 
         // #1 Create :  Add AddRange

+ 1 - 0
src/Vitorm/DbContext.cs

@@ -112,6 +112,7 @@ namespace Vitorm
         // #0 Schema :  Create Drop
         public virtual void TryCreateTable<Entity>() => throw new NotImplementedException();
         public virtual void TryDropTable<Entity>() => throw new NotImplementedException();
+        public virtual void Truncate<Entity>() => throw new NotImplementedException();
 
 
         // #1 Create :  Add AddRange

+ 1 - 0
src/Vitorm/DbSet.cs

@@ -47,6 +47,7 @@ namespace Vitorm
         // #0 Schema :  Create Drop
         public virtual void TryCreateTable() => dbContext.TryCreateTable<Entity>();
         public virtual void TryDropTable() => dbContext.TryDropTable<Entity>();
+        public virtual void Truncate() => dbContext.Truncate<Entity>();
 
 
         // #1 Create :  Add AddRange

+ 1 - 0
src/Vitorm/IDbContext.cs

@@ -8,6 +8,7 @@ namespace Vitorm
         // #0 Schema :  Create Drop
         void TryCreateTable<Entity>();
         void TryDropTable<Entity>();
+        void Truncate<Entity>();
 
 
         // #1 Create :  Add AddRange

+ 1 - 0
src/Vitorm/IDbSet.cs

@@ -17,6 +17,7 @@ namespace Vitorm
         // #0 Schema :  Create Drop
         void TryCreateTable();
         void TryDropTable();
+        void Truncate();
     }
 
     public interface IDbSet<Entity> : IDbSet

+ 1 - 0
src/Vitorm/Sql/SqlDbContext.cs

@@ -138,6 +138,7 @@ namespace Vitorm.Sql
         // #0 Schema :  Create Drop
         public override void TryCreateTable<Entity>() => DbSet<Entity>().TryCreateTable();
         public override void TryDropTable<Entity>() => DbSet<Entity>().TryDropTable();
+        public override void Truncate<Entity>() => DbSet<Entity>().Truncate();
 
 
         // #1 Create :  Add AddRange

+ 5 - 0
src/Vitorm/Sql/SqlDbSet.cs

@@ -48,6 +48,11 @@ namespace Vitorm.Sql
             string sql = sqlTranslateService.PrepareTryDropTable(entityDescriptor);
             sqlDbContext.Execute(sql: sql);
         }
+        public override void Truncate()
+        {
+            string sql = sqlTranslateService.PrepareTruncate(entityDescriptor);
+            sqlDbContext.Execute(sql: sql);
+        }
         #endregion
 
 

+ 1 - 0
src/Vitorm/Sql/SqlTranslate/ISqlTranslateService.cs

@@ -43,6 +43,7 @@ namespace Vitorm.Sql.SqlTranslate
         // #0 Schema :  PrepareCreate PrepareDrop
         string PrepareTryCreateTable(IEntityDescriptor entityDescriptor);
         string PrepareTryDropTable(IEntityDescriptor entityDescriptor);
+        string PrepareTruncate(IEntityDescriptor entityDescriptor);
 
 
         // #1 Create :  PrepareAdd

+ 6 - 0
src/Vitorm/Sql/SqlTranslate/SqlTranslateService.cs

@@ -365,6 +365,12 @@ namespace Vitorm.Sql.SqlTranslate
         public abstract string PrepareTryCreateTable(IEntityDescriptor entityDescriptor);
         public abstract string PrepareTryDropTable(IEntityDescriptor entityDescriptor);
 
+        public virtual string PrepareTruncate(IEntityDescriptor entityDescriptor)
+        {
+            // truncate table User;
+            return $@"truncate table {DelimitTableName(entityDescriptor)};";
+        }
+
 
         #region #1 Create :  PrepareAdd
         public virtual EAddType Entity_GetAddType(SqlTranslateArgument arg, object entity)

+ 1 - 1
src/Vitorm/Vitorm.csproj

@@ -6,7 +6,7 @@
 
     <PropertyGroup>
         <TargetFramework>netstandard2.0</TargetFramework>
-        <Version>2.0.3</Version>
+        <Version>2.0.4</Version>
         <LangVersion>9.0</LangVersion>
     </PropertyGroup>
 

+ 1 - 0
test/Vitorm.Data.Console/Program.cs

@@ -45,6 +45,7 @@ namespace App
             Data.DeleteByKeys<User, int>(new[] { 1, 2 });
             Data.Query<User>().Where(u => u.name.Contains("li"))
                 .ExecuteDelete();
+            Data.Truncate<User>();
 
             // #7 Join Queries
             {

+ 2 - 2
test/Vitorm.Data.MsTest/Vitorm.Data.MsTest.csproj

@@ -16,8 +16,8 @@
 
         <PackageReference Include="Vit.Core" Version="2.2.0" />
 
-        <PackageReference Include="Vitorm.ClickHouse" Version="2.0.3" />
-        <PackageReference Include="Vitorm.ElasticSearch" Version="2.0.3" />
+        <PackageReference Include="Vitorm.ClickHouse" Version="2.0.4" />
+        <PackageReference Include="Vitorm.ElasticSearch" Version="2.0.4" />
     </ItemGroup>
 
     <ItemGroup>

+ 1 - 0
test/Vitorm.Sqlite.Console/Program.cs

@@ -47,6 +47,7 @@ namespace App
             dbContext.DeleteByKeys<User, int>(new[] { 1, 2 });
             dbContext.Query<User>().Where(u => u.name.Contains("li"))
                 .ExecuteDelete();
+            dbContext.Truncate<User>();
 
             // #7 Join Queries
             {

+ 1 - 1
test/Vitorm.Sqlite.MsTest/CommonTest/DbContext_Test.cs

@@ -104,7 +104,7 @@ namespace Vitorm.MsTest.CommonTest
         }
         #endregion
 
-        #region #region Custom EntityLoader
+        #region Custom EntityLoader
         public class CustomEntityLoader : IEntityLoader
         {
             public void CleanCache() { }

+ 24 - 0
test/Vitorm.Sqlite.MsTest/CommonTest/Schema_Test.cs

@@ -0,0 +1,24 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace Vitorm.MsTest.CommonTest
+{
+
+    [TestClass]
+    public partial class Schema_Test
+    {
+
+        [TestMethod]
+        public void Test_CreateAndTropTable()
+        {
+            using var dbContext = DataSource.CreateDbContextForWriting();
+
+            dbContext.TryCreateTable<User>();
+            dbContext.TryCreateTable<User>();
+            dbContext.TryDropTable<User>();
+            dbContext.TryDropTable<User>();
+        }
+
+
+
+    }
+}

+ 34 - 0
test/Vitorm.Sqlite.MsTest/CommonTest/Truncate_Test.cs

@@ -0,0 +1,34 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace Vitorm.MsTest.CommonTest
+{
+
+    [TestClass]
+    public partial class Truncate_Test
+    {
+
+        [TestMethod]
+        public void Test_Truncate()
+        {
+            using var dbContext = DataSource.CreateDbContextForWriting();
+
+            // Count
+            {
+                var count = dbContext.Query<User>().Count();
+                Assert.AreEqual(6, count);
+            }
+
+            dbContext.Truncate<User>();
+
+            DataSource.WaitForUpdate();
+
+            // Count
+            {
+                var count = dbContext.Query<User>().Count();
+                Assert.AreEqual(0, count);
+            }
+        }
+
+
+    }
+}