From 4c732f25dc0761a93ef8640e5c872c41a181fa5b Mon Sep 17 00:00:00 2001
From: sunkaixuan <610262374@qq.com>
Date: Mon, 8 May 2017 00:26:36 +0800
Subject: [PATCH] -
---
OrmTest/OrmTest.csproj | 1 +
OrmTest/UnitTest/Delete.cs | 30 +++++++++
.../UpdateProvider/DeleteableProvider.cs | 62 +++++++++++++++++++
SqlSugar/InstanceFactory.cs | 6 ++
SqlSugar/Interface/IDeleteable.cs | 16 ++---
SqlSugar/SqlSugar.csproj | 2 +-
SqlSugar/SqlSugarClient.cs | 15 +++++
7 files changed, 123 insertions(+), 9 deletions(-)
create mode 100644 OrmTest/UnitTest/Delete.cs
create mode 100644 SqlSugar/Abstract/UpdateProvider/DeleteableProvider.cs
diff --git a/OrmTest/OrmTest.csproj b/OrmTest/OrmTest.csproj
index 66bddc2af..e6cfed6d4 100644
--- a/OrmTest/OrmTest.csproj
+++ b/OrmTest/OrmTest.csproj
@@ -60,6 +60,7 @@
+
diff --git a/OrmTest/UnitTest/Delete.cs b/OrmTest/UnitTest/Delete.cs
new file mode 100644
index 000000000..0d6f0da90
--- /dev/null
+++ b/OrmTest/UnitTest/Delete.cs
@@ -0,0 +1,30 @@
+using OrmTest.UnitTest;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OrmTest
+{
+ public class Delete : ExpTestBase
+ {
+ private Delete() { }
+ public Delete(int eachCount)
+ {
+ this.Count = eachCount;
+ }
+
+ public void Init()
+ {
+
+ }
+
+ public SqlSugarClient GetInstance()
+ {
+ SqlSugarClient db = new SqlSugarClient(new SystemTablesConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true });
+ return db;
+ }
+ }
+}
diff --git a/SqlSugar/Abstract/UpdateProvider/DeleteableProvider.cs b/SqlSugar/Abstract/UpdateProvider/DeleteableProvider.cs
new file mode 100644
index 000000000..b81600a6c
--- /dev/null
+++ b/SqlSugar/Abstract/UpdateProvider/DeleteableProvider.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SqlSugar
+{
+ public class DeleteableProvider : IDeleteable where T : class, new()
+ {
+ public SqlSugarClient Context { get; set; }
+ public IDb Db { get { return Context.Database; } }
+ public ISqlBuilder SqlBuilder { get; set; }
+ public DeleteBuilder DeleteBuilder { get; set; }
+
+ public int ExecuteCommand()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IDeleteable TableName(string name)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IDeleteable Where(List deleteObjs)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IDeleteable Where(Expression> expression)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IDeleteable Where(T deleteObj)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IDeleteable Where(string whereString, object whereObj)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IDeleteable Where(PkType[] primaryKeyValues)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IDeleteable Where(PkType primaryKeyValue)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IDeleteable With(string lockString)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/SqlSugar/InstanceFactory.cs b/SqlSugar/InstanceFactory.cs
index 544ef5916..9e58ceea9 100644
--- a/SqlSugar/InstanceFactory.cs
+++ b/SqlSugar/InstanceFactory.cs
@@ -31,6 +31,12 @@ namespace SqlSugar
InsertBuilder reval = CreateInstance(GetClassName(currentConnectionConfig.DbType, "InsertBuilder"), currentConnectionConfig.DbType);
return reval;
}
+ public static DeleteBuilder GetDeleteBuilder(IConnectionConfig currentConnectionConfig)
+ {
+ CheckConfig(currentConnectionConfig);
+ DeleteBuilder reval = CreateInstance(GetClassName(currentConnectionConfig.DbType, "DeleteBuilder"), currentConnectionConfig.DbType);
+ return reval;
+ }
public static ILambdaExpressions GetLambdaExpressions(IConnectionConfig currentConnectionConfig)
{
diff --git a/SqlSugar/Interface/IDeleteable.cs b/SqlSugar/Interface/IDeleteable.cs
index c1c537e3d..a78bd5961 100644
--- a/SqlSugar/Interface/IDeleteable.cs
+++ b/SqlSugar/Interface/IDeleteable.cs
@@ -10,13 +10,13 @@ namespace SqlSugar
public interface IDeleteable
{
int ExecuteCommand();
- IInsertable TableName(string name);
- IInsertable With(string lockString);
- IInsertable Where(T deleteObj);
- IInsertable Where(Expression> expression);
- IInsertable Where(List deleteObjs);
- IInsertable Where(PkType primaryKeyValue);
- IInsertable Where(PkType [] primaryKeyValues);
- IInsertable Where(string whereString,object whereObj);
+ IDeleteable TableName(string name);
+ IDeleteable With(string lockString);
+ IDeleteable Where(T deleteObj);
+ IDeleteable Where(Expression> expression);
+ IDeleteable Where(List deleteObjs);
+ IDeleteable Where(PkType primaryKeyValue);
+ IDeleteable Where(PkType [] primaryKeyValues);
+ IDeleteable Where(string whereString,object whereObj);
}
}
diff --git a/SqlSugar/SqlSugar.csproj b/SqlSugar/SqlSugar.csproj
index 11c7ca14a..415c20391 100644
--- a/SqlSugar/SqlSugar.csproj
+++ b/SqlSugar/SqlSugar.csproj
@@ -55,6 +55,7 @@
+
@@ -161,7 +162,6 @@
-
diff --git a/SqlSugar/SqlSugarClient.cs b/SqlSugar/SqlSugarClient.cs
index d1b1ba0e6..b3cf5551f 100644
--- a/SqlSugar/SqlSugarClient.cs
+++ b/SqlSugar/SqlSugarClient.cs
@@ -259,6 +259,21 @@ namespace SqlSugar
}
#endregion
+ #region deleteable
+ public virtual IDeleteable Deleteable() where T : class, new()
+ {
+ var reval = new DeleteableProvider();
+ var sqlBuilder = InstanceFactory.GetSqlbuilder(base.CurrentConnectionConfig); ;
+ reval.Context = this;
+ reval.SqlBuilder = sqlBuilder;
+ sqlBuilder.DeleteBuilder = reval.DeleteBuilder = InstanceFactory.GetDeleteBuilder(base.CurrentConnectionConfig);
+ sqlBuilder.InsertBuilder.Builder = sqlBuilder;
+ sqlBuilder.InsertBuilder.LambdaExpressions = InstanceFactory.GetLambdaExpressions(base.CurrentConnectionConfig);
+ sqlBuilder.Context = reval.SqlBuilder.InsertBuilder.Context = this;
+ return reval;
+ }
+ #endregion
+
#region SqlQuery
public virtual List SqlQuery(string sql, object whereObj = null)
{