From cc585b4cd5d331fce17e8b277a539a645b65f7ba Mon Sep 17 00:00:00 2001
From: 28810 <28810@YEXIANGQIN>
Date: Mon, 9 Dec 2019 16:48:42 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E5=A2=9E=E5=8A=A0=20BaseEntity=20=E7=89=A9?=
=?UTF-8?q?=E7=90=86=E5=88=A0=E9=99=A4=E6=96=B9=E6=B3=95=20Delete(true)?=
=?UTF-8?q?=EF=BC=9B#152=20-=20=E4=BF=AE=E5=A4=8D=20Sqlite=20attachs=20?=
=?UTF-8?q?=E9=99=84=E5=8A=A0=E6=95=B0=E6=8D=AE=E5=BA=93=E5=88=AB=E5=90=8D?=
=?UTF-8?q?=20bug=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../FreeSql.Extensions.BaseEntity/BaseEntity.cs | 11 ++++++++++-
.../FreeSql.Extensions.BaseEntity/BaseEntityAsync.cs | 11 ++++++++++-
FreeSql.Tests/FreeSql.Tests/UnitTest2.cs | 3 +++
.../SqliteAdo/SqliteConnectionPool.cs | 4 ++--
4 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/Extensions/FreeSql.Extensions.BaseEntity/BaseEntity.cs b/Extensions/FreeSql.Extensions.BaseEntity/BaseEntity.cs
index fa8f9669..7ef0b544 100644
--- a/Extensions/FreeSql.Extensions.BaseEntity/BaseEntity.cs
+++ b/Extensions/FreeSql.Extensions.BaseEntity/BaseEntity.cs
@@ -80,8 +80,17 @@ namespace FreeSql
///
/// 删除数据
///
+ /// 是否物理删除
///
- public virtual bool Delete() => this.UpdateIsDeleted(true);
+ public virtual bool Delete(bool physicalDelete = false)
+ {
+ if (physicalDelete == false) return this.UpdateIsDeleted(true);
+ if (this.Repository == null)
+ return Orm.Delete(this as TEntity).ExecuteAffrows() == 1;
+ //this.SetTenantId();
+ this.Repository.UnitOfWork = UnitOfWork.Current.Value;
+ return this.Repository.Delete(this as TEntity) == 1;
+ }
///
/// 恢复删除的数据
///
diff --git a/Extensions/FreeSql.Extensions.BaseEntity/BaseEntityAsync.cs b/Extensions/FreeSql.Extensions.BaseEntity/BaseEntityAsync.cs
index 4b98dca2..13a3c29e 100644
--- a/Extensions/FreeSql.Extensions.BaseEntity/BaseEntityAsync.cs
+++ b/Extensions/FreeSql.Extensions.BaseEntity/BaseEntityAsync.cs
@@ -62,8 +62,17 @@ namespace FreeSql
///
/// 删除数据
///
+ /// 是否物理删除
///
- public virtual Task DeleteAsync() => this.UpdateIsDeletedAsync(true);
+ async public virtual Task DeleteAsync(bool physicalDelete = false)
+ {
+ if (physicalDelete == false) return await this.UpdateIsDeletedAsync(true);
+ if (this.Repository == null)
+ return await Orm.Delete(this as TEntity).ExecuteAffrowsAsync() == 1;
+ //this.SetTenantId();
+ this.Repository.UnitOfWork = UnitOfWork.Current.Value;
+ return await this.Repository.DeleteAsync(this as TEntity) == 1;
+ }
///
/// 恢复删除的数据
///
diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs
index f65fd232..7b687258 100644
--- a/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs
+++ b/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs
@@ -230,6 +230,9 @@ namespace FreeSql.Tests
[Fact]
public void Test02()
{
+ var testcf = g.sqlite.CodeFirst.GetComparisonDDLStatements(typeof(dfDto2), "main.test2");
+
+
var u1 = new userinfo {
name = "111",
departments = new List(new[]{
diff --git a/Providers/FreeSql.Provider.Sqlite/SqliteAdo/SqliteConnectionPool.cs b/Providers/FreeSql.Provider.Sqlite/SqliteAdo/SqliteConnectionPool.cs
index a6805118..bc915c72 100644
--- a/Providers/FreeSql.Provider.Sqlite/SqliteAdo/SqliteConnectionPool.cs
+++ b/Providers/FreeSql.Provider.Sqlite/SqliteAdo/SqliteConnectionPool.cs
@@ -242,7 +242,7 @@ namespace FreeSql.Sqlite
{
var sb = new StringBuilder();
foreach (var att in attach)
- sb.Append($"attach database [{att}] as [{att.Split('.').First()}];\r\n");
+ sb.Append($"attach database [{att}] as [{att.Split('/', '\\').Last().Split('.').First()}];\r\n");
var cmd = that.CreateCommand();
cmd.CommandText = sb.ToString();
@@ -274,7 +274,7 @@ namespace FreeSql.Sqlite
{
var sb = new StringBuilder();
foreach (var att in attach)
- sb.Append($"attach database [{att}] as [{att.Split('.').First()}];\r\n");
+ sb.Append($"attach database [{att}] as [{att.Split('/', '\\').Last().Split('.').First()}];\r\n");
var cmd = that.CreateCommand();
cmd.CommandText = sb.ToString();