From e12bd7eb06a45b494f0729018b1d4936852150ea Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 3 May 2019 20:03:50 +0800 Subject: [PATCH] Update Insertable --- Src/Asp.Net/SqlServerTest/Demos/3_Insert.cs | 6 +-- .../InsertableProvider/InsertableProvider.cs | 38 +++++++++++++------ Src/Asp.Net/SqlSugar/Interface/Insertable.cs | 20 ++++++++-- 3 files changed, 45 insertions(+), 19 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/Demos/3_Insert.cs b/Src/Asp.Net/SqlServerTest/Demos/3_Insert.cs index f9f548fae..c67f976f7 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/3_Insert.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/3_Insert.cs @@ -30,7 +30,7 @@ namespace OrmTest.Demo //Only insert Name and SchoolId var t4 = db.Insertable(insertObj).InsertColumns(it => new { it.Name, it.SchoolId }).ExecuteReturnIdentity(); - var t4_1 = db.Insertable(insertObj).InsertColumns(it => it=="Name"||it== "SchoolId").ExecuteReturnIdentity(); + var t4_1 = db.Insertable(insertObj).InsertColumns("Name","SchoolId").ExecuteReturnIdentity(); //Ignore TestId @@ -38,7 +38,7 @@ namespace OrmTest.Demo //Ignore TestId - var t6 = db.Insertable(insertObj).IgnoreColumns(it => it == "Name" || it == "TestId").ExecuteReturnIdentity(); + var t6 = db.Insertable(insertObj).IgnoreColumns( "Name","TestId").ExecuteReturnIdentity(); //Use Lock @@ -46,7 +46,7 @@ namespace OrmTest.Demo var insertObj2 = new Student() { Name = null, CreateTime = Convert.ToDateTime("2010-1-1") }; - var t9 = db.Insertable(insertObj2).Where(true/* Is insert null */, false/*off identity*/).ExecuteCommand(); + var t9 = db.Insertable(insertObj2).IgnoreColumns(ignoreNullColumn:true).ExecuteCommand(); //Insert List var insertObjs = new List(); diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs index 07249e96c..596fff76e 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs @@ -204,9 +204,11 @@ namespace SqlSugar this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumns.Any(ig => ig.Equals(it.DbColumnName, StringComparison.CurrentCultureIgnoreCase))).ToList(); return this; } - public IInsertable IgnoreColumns(Func ignoreColumMethod) + public IInsertable IgnoreColumns(params string[] columns) { - this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumMethod(it.PropertyName)).ToList(); + if (columns == null) + columns = new string[] { }; + this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !columns.Any(ig => ig.Equals(it.PropertyName, StringComparison.CurrentCultureIgnoreCase))).ToList(); return this; } @@ -223,25 +225,17 @@ namespace SqlSugar return this; } - public IInsertable InsertColumns(Func insertColumMethod) - { - this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => insertColumMethod(it.PropertyName)).ToList(); - return this; - } - public IInsertable With(string lockString) { if (this.Context.CurrentConnectionConfig.DbType == DbType.SqlServer) this.InsertBuilder.TableWithString = lockString; return this; } - - public IInsertable Where(bool isNoInsertNull, bool isOffIdentity = false) - { + public IInsertable IgnoreColumns(bool ignoreNullColumn, bool isOffIdentity = false) { this.IsOffIdentity = isOffIdentity; if (this.InsertBuilder.LambdaExpressions == null) this.InsertBuilder.LambdaExpressions = InstanceFactory.GetLambdaExpressions(this.Context.CurrentConnectionConfig); - this.InsertBuilder.IsNoInsertNull = isNoInsertNull; + this.InsertBuilder.IsNoInsertNull = ignoreNullColumn; return this; } @@ -568,5 +562,25 @@ namespace SqlSugar } #endregion + + #region Obsolete + [Obsolete] + public IInsertable InsertColumns(Func insertColumMethod) + { + this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => insertColumMethod(it.PropertyName)).ToList(); + return this; + } + [Obsolete] + public IInsertable IgnoreColumns(Func ignoreColumMethod) + { + this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumMethod(it.PropertyName)).ToList(); + return this; + } + [Obsolete] + public IInsertable Where(bool ignoreNullColumn, bool isOffIdentity = false) + { + return IgnoreColumns(ignoreNullColumn, isOffIdentity); + } + #endregion } } diff --git a/Src/Asp.Net/SqlSugar/Interface/Insertable.cs b/Src/Asp.Net/SqlSugar/Interface/Insertable.cs index 465f922b9..f563f34be 100644 --- a/Src/Asp.Net/SqlSugar/Interface/Insertable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/Insertable.cs @@ -23,14 +23,26 @@ namespace SqlSugar IInsertable AS(string tableName); IInsertable With(string lockString); IInsertable InsertColumns(Expression> columns); - IInsertable InsertColumns(string[] columns); - IInsertable InsertColumns(Func insertColumMethod); + IInsertable InsertColumns(params string[] columns); + IInsertable IgnoreColumns(Expression> columns); - IInsertable IgnoreColumns(Func ignoreColumMethod); - IInsertable Where(bool isInsertNull, bool isOffIdentity = false); + IInsertable IgnoreColumns(params string[]columns); + IInsertable IgnoreColumns(bool ignoreNullColumn, bool isOffIdentity = false); + + IInsertable EnableDiffLogEvent(object businessData = null); IInsertable RemoveDataCache(); KeyValuePair> ToSql(); void AddQueue(); + + #region Obsolete + [Obsolete("use IgnoreColumns(string[] columns")] + + IInsertable IgnoreColumns(Func ignoreColumMethod); + [Obsolete("use InsertColumns(string[] columns")] + IInsertable InsertColumns(Func insertColumMethod); + [Obsolete("use IgnoreColumns(bool isNoInsertNull, bool isOffIdentity = false)")] + IInsertable Where(bool ignoreNullColumn, bool isOffIdentity = false); + #endregion } }