mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	- 增加 BaseEntity 物理删除方法 Delete(true);#152
- 修复 Sqlite attachs 附加数据库别名 bug;
This commit is contained in:
		@@ -80,8 +80,17 @@ namespace FreeSql
 | 
				
			|||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 删除数据
 | 
					        /// 删除数据
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="physicalDelete">是否物理删除</param>
 | 
				
			||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        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<TEntity>(this as TEntity).ExecuteAffrows() == 1;
 | 
				
			||||||
 | 
					            //this.SetTenantId();
 | 
				
			||||||
 | 
					            this.Repository.UnitOfWork = UnitOfWork.Current.Value;
 | 
				
			||||||
 | 
					            return this.Repository.Delete(this as TEntity) == 1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 恢复删除的数据
 | 
					        /// 恢复删除的数据
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -62,8 +62,17 @@ namespace FreeSql
 | 
				
			|||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 删除数据
 | 
					        /// 删除数据
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="physicalDelete">是否物理删除</param>
 | 
				
			||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        public virtual Task<bool> DeleteAsync() => this.UpdateIsDeletedAsync(true);
 | 
					        async public virtual Task<bool> DeleteAsync(bool physicalDelete = false)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (physicalDelete == false) return await this.UpdateIsDeletedAsync(true);
 | 
				
			||||||
 | 
					            if (this.Repository == null)
 | 
				
			||||||
 | 
					                return await Orm.Delete<TEntity>(this as TEntity).ExecuteAffrowsAsync() == 1;
 | 
				
			||||||
 | 
					            //this.SetTenantId();
 | 
				
			||||||
 | 
					            this.Repository.UnitOfWork = UnitOfWork.Current.Value;
 | 
				
			||||||
 | 
					            return await this.Repository.DeleteAsync(this as TEntity) == 1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 恢复删除的数据
 | 
					        /// 恢复删除的数据
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -230,6 +230,9 @@ namespace FreeSql.Tests
 | 
				
			|||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void Test02()
 | 
					        public void Test02()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					            var testcf = g.sqlite.CodeFirst.GetComparisonDDLStatements(typeof(dfDto2), "main.test2");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var u1 = new userinfo {
 | 
					            var u1 = new userinfo {
 | 
				
			||||||
                name = "111",
 | 
					                name = "111",
 | 
				
			||||||
                departments = new List<departments>(new[]{
 | 
					                departments = new List<departments>(new[]{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -242,7 +242,7 @@ namespace FreeSql.Sqlite
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                var sb = new StringBuilder();
 | 
					                var sb = new StringBuilder();
 | 
				
			||||||
                foreach (var att in attach)
 | 
					                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();
 | 
					                var cmd = that.CreateCommand();
 | 
				
			||||||
                cmd.CommandText = sb.ToString();
 | 
					                cmd.CommandText = sb.ToString();
 | 
				
			||||||
@@ -274,7 +274,7 @@ namespace FreeSql.Sqlite
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                var sb = new StringBuilder();
 | 
					                var sb = new StringBuilder();
 | 
				
			||||||
                foreach (var att in attach)
 | 
					                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();
 | 
					                var cmd = that.CreateCommand();
 | 
				
			||||||
                cmd.CommandText = sb.ToString();
 | 
					                cmd.CommandText = sb.ToString();
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user