diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertablePage.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertablePage.cs index d87ebed60..b58f5632e 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertablePage.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertablePage.cs @@ -16,6 +16,7 @@ namespace SqlSugar public bool IsEnableDiffLogEvent { get; internal set; } public DiffLogModel DiffModel { get; internal set; } public bool IsOffIdentity { get; internal set; } + public bool IsInsertColumnsNull { get; internal set; } public int ExecuteCommand() { @@ -34,7 +35,7 @@ namespace SqlSugar } this.Context.Utilities.PageEach(DataList, PageSize, pageItem => { - result += this.Context.Insertable(pageItem).AS(TableName).OffIdentity(IsOffIdentity).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns.ToArray()).ExecuteCommand(); + result += this.Context.Insertable(pageItem).AS(TableName).IgnoreColumnsNull(this.IsInsertColumnsNull).OffIdentity(IsOffIdentity).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns.ToArray()).ExecuteCommand(); }); if (isNoTran) { @@ -68,7 +69,7 @@ namespace SqlSugar } await this.Context.Utilities.PageEachAsync(DataList, PageSize, async pageItem => { - result +=await this.Context.Insertable(pageItem).AS(TableName).OffIdentity(IsOffIdentity).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns.ToArray()).ExecuteCommandAsync(); + result +=await this.Context.Insertable(pageItem).AS(TableName).IgnoreColumnsNull(this.IsInsertColumnsNull).OffIdentity(IsOffIdentity).EnableDiffLogEventIF(IsEnableDiffLogEvent, DiffModel).InsertColumns(InsertColumns.ToArray()).ExecuteCommandAsync(); }); if (isNoTran) { @@ -154,5 +155,12 @@ namespace SqlSugar } return result; } + + public InsertablePage IgnoreColumnsNull(bool isIgnoreNull = true) + { + this.PageSize = 1; + this.IsInsertColumnsNull = isIgnoreNull; + return this; + } } } diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs index dc43b937c..097138bf5 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs @@ -522,6 +522,16 @@ namespace SqlSugar return this; } + public IInsertable IgnoreColumnsNull(bool isIgnoreNull = true) + { + if (isIgnoreNull) + { + Check.Exception(this.InsertObjs.Count() > 1 , ErrorMessage.GetThrowMessage("ignoreNullColumn NoSupport batch insert, use .PageSize(1).IgnoreColumnsNull().ExecuteCommand()", "ignoreNullColumn 不支持批量操作,你可以用PageSzie(1).IgnoreColumnsNull().ExecuteCommand()")); + this.InsertBuilder.IsNoInsertNull = true; + } + return this; + } + public IInsertable MySqlIgnore() { this.InsertBuilder.MySqlIgnore = true; @@ -567,7 +577,7 @@ namespace SqlSugar return this; } public IInsertable IgnoreColumns(bool ignoreNullColumn, bool isOffIdentity = false) { - Check.Exception(this.InsertObjs.Count() > 1&& ignoreNullColumn, ErrorMessage.GetThrowMessage("ignoreNullColumn NoSupport batch insert", "ignoreNullColumn 不支持批量操作")); + Check.Exception(this.InsertObjs.Count() > 1&& ignoreNullColumn, ErrorMessage.GetThrowMessage("ignoreNullColumn NoSupport batch insert, use .PageSize(1).IgnoreColumnsNull().ExecuteCommand()", "ignoreNullColumn 不支持批量操作, 你可以使用 .PageSize(1).IgnoreColumnsNull().ExecuteCommand()")); this.IsOffIdentity = isOffIdentity; this.InsertBuilder.IsOffIdentity = isOffIdentity; if (this.InsertBuilder.LambdaExpressions == null) diff --git a/Src/Asp.Net/SqlSugar/Interface/Insertable.cs b/Src/Asp.Net/SqlSugar/Interface/Insertable.cs index 618b0aab4..b7791887c 100644 --- a/Src/Asp.Net/SqlSugar/Interface/Insertable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/Insertable.cs @@ -43,6 +43,7 @@ namespace SqlSugar IInsertable IgnoreColumns(Expression> columns); IInsertable IgnoreColumns(params string[]columns); IInsertable IgnoreColumns(bool ignoreNullColumn, bool isOffIdentity = false); + IInsertable IgnoreColumnsNull(bool isIgnoreNull = true); ISubInsertable AddSubList(Expression> subForeignKey); ISubInsertable AddSubList(Expression> tree);