diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/DeleteNavManyToMany.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/DeleteNavManyToMany.cs index dbfbf8eaa..0eb136064 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/DeleteNavManyToMany.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/DeleteNavManyToMany.cs @@ -34,7 +34,7 @@ namespace SqlSugar } var aids = _ParentList.Select(it => parentPkColumn.PropertyInfo.GetValue(it)).ToList(); - var bids = _Context.Queryable().AS(mappingEntity.DbTableName).In(mappingA.DbColumnName, aids) + var bids = _Context.Queryable().Filter(mappingEntity.Type).AS(mappingEntity.DbTableName).In(mappingA.DbColumnName, aids) .Select(mappingB.DbColumnName).ToDataTable() .Rows.Cast().Select(it => it[0]).ToList(); diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/InsertNavProviderManyToMany.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/InsertNavProviderManyToMany.cs index 906d53925..e710bf5b6 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/InsertNavProviderManyToMany.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/InsertNavProviderManyToMany.cs @@ -26,6 +26,12 @@ namespace SqlSugar .Where(it => it.PropertyName != mappingA.PropertyName) .Where(it => it.PropertyName != mappingB.PropertyName) .Where(it => it.IsPrimarykey && !it.IsIdentity && it.OracleSequenceName.IsNullOrEmpty()).FirstOrDefault(); + var mappingBizDeleteColumn = mappingEntity.Columns.FirstOrDefault(it => + it.DbColumnName.EqualCase("isdelete") || + it.PropertyName.EqualCase("isdelete") || + it.DbColumnName.EqualCase("isdeleted") || + it.PropertyName.EqualCase("isdeleted") + ); Check.Exception(mappingA == null || mappingB == null, $"Navigate property {name} error ", $"导航属性{name}配置错误"); List> mappgingTables = new List>(); foreach (var item in parentList) @@ -40,6 +46,10 @@ namespace SqlSugar Dictionary keyValuePairs = new Dictionary(); keyValuePairs.Add(mappingA.DbColumnName, parentId); keyValuePairs.Add(mappingB.DbColumnName, chidId); + if (mappingBizDeleteColumn != null) + { + keyValuePairs.Add(mappingBizDeleteColumn.DbColumnName, UtilMethods.GetDefaultValue(mappingBizDeleteColumn.UnderType)); + } if (mappingPk != null) { SetMappingTableDefaultValue(mappingPk, keyValuePairs); diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavManyToMany.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavManyToMany.cs index 1c05e41f6..eba74f07d 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavManyToMany.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavManyToMany.cs @@ -26,6 +26,11 @@ namespace SqlSugar .Where(it => it.PropertyName != mappingA.PropertyName) .Where(it => it.PropertyName != mappingB.PropertyName) .Where(it => it.IsPrimarykey && !it.IsIdentity && it.OracleSequenceName.IsNullOrEmpty()).FirstOrDefault(); + var mappingBizDeleteColumn = mappingEntity.Columns.FirstOrDefault(it => + it.DbColumnName.EqualCase("isdelete") || + it.PropertyName.EqualCase("isdelete") || + it.DbColumnName.EqualCase("isdeleted") || + it.PropertyName.EqualCase("isdeleted")); Check.Exception(mappingA == null || mappingB == null, $"Navigate property {name} error ", $"导航属性{name}配置错误"); List> mappgingTables = new List>(); var ids=new List(); @@ -52,6 +57,10 @@ namespace SqlSugar Dictionary keyValuePairs = new Dictionary(); keyValuePairs.Add(mappingA.DbColumnName, parentId); keyValuePairs.Add(mappingB.DbColumnName, chidId); + if (mappingBizDeleteColumn != null) + { + keyValuePairs.Add(mappingBizDeleteColumn.DbColumnName, UtilMethods.GetDefaultValue(mappingBizDeleteColumn.UnderType)); + } if (mappingPk != null) { SetMappingTableDefaultValue(mappingPk, keyValuePairs); diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs index a48cd08c7..b3599b282 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs @@ -249,8 +249,7 @@ namespace SqlSugar } else if (type == UtilConstants.DateTimeOffsetType) { - var date = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value); - return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; + return FormatDateTimeOffset(value); } else if (type == UtilConstants.FloatType) { @@ -262,6 +261,12 @@ namespace SqlSugar } } } + + public virtual string FormatDateTimeOffset(object value) + { + var date = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value); + return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; + } #endregion } } diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs index 17fe07051..7344420c2 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs @@ -353,8 +353,7 @@ namespace SqlSugar } else if (type == UtilConstants.DateTimeOffsetType) { - var date = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value); - return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; + return FormatDateTimeOffset(value); } else if (type == UtilConstants.StringType || type == UtilConstants.ObjType) { @@ -381,5 +380,11 @@ namespace SqlSugar } } } + + public virtual string FormatDateTimeOffset(object value) + { + var date = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value); + return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; + } } } diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerInsertBuilder.cs b/Src/Asp.NetCore2/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerInsertBuilder.cs index 0c65fb23a..dc942ed46 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerInsertBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerInsertBuilder.cs @@ -71,5 +71,9 @@ namespace SqlSugar return result; } } + public override string FormatDateTimeOffset(object value) + { + return "'" + ((DateTimeOffset)value).ToString("o") + "'"; + } } } diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerUpdateBuilder.cs b/Src/Asp.NetCore2/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerUpdateBuilder.cs index 4853d2384..fe7afb1d8 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerUpdateBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerUpdateBuilder.cs @@ -90,5 +90,9 @@ namespace SqlSugar return FormatValue(it.Value); } } + public override string FormatDateTimeOffset(object value) + { + return "'"+((DateTimeOffset)value).ToString("o")+"'"; + } } }