Update Insertable

This commit is contained in:
sunkaixuan 2019-05-03 20:03:50 +08:00
parent bf40f8af5f
commit e12bd7eb06
3 changed files with 45 additions and 19 deletions

View File

@ -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<T>
var insertObjs = new List<Student>();

View File

@ -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<T> IgnoreColumns(Func<string, bool> ignoreColumMethod)
public IInsertable<T> 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<T> InsertColumns(Func<string, bool> insertColumMethod)
{
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => insertColumMethod(it.PropertyName)).ToList();
return this;
}
public IInsertable<T> With(string lockString)
{
if (this.Context.CurrentConnectionConfig.DbType == DbType.SqlServer)
this.InsertBuilder.TableWithString = lockString;
return this;
}
public IInsertable<T> Where(bool isNoInsertNull, bool isOffIdentity = false)
{
public IInsertable<T> 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<T> InsertColumns(Func<string, bool> insertColumMethod)
{
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => insertColumMethod(it.PropertyName)).ToList();
return this;
}
[Obsolete]
public IInsertable<T> IgnoreColumns(Func<string, bool> ignoreColumMethod)
{
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumMethod(it.PropertyName)).ToList();
return this;
}
[Obsolete]
public IInsertable<T> Where(bool ignoreNullColumn, bool isOffIdentity = false)
{
return IgnoreColumns(ignoreNullColumn, isOffIdentity);
}
#endregion
}
}

View File

@ -23,14 +23,26 @@ namespace SqlSugar
IInsertable<T> AS(string tableName);
IInsertable<T> With(string lockString);
IInsertable<T> InsertColumns(Expression<Func<T, object>> columns);
IInsertable<T> InsertColumns(string[] columns);
IInsertable<T> InsertColumns(Func<string, bool> insertColumMethod);
IInsertable<T> InsertColumns(params string[] columns);
IInsertable<T> IgnoreColumns(Expression<Func<T, object>> columns);
IInsertable<T> IgnoreColumns(Func<string,bool> ignoreColumMethod);
IInsertable<T> Where(bool isInsertNull, bool isOffIdentity = false);
IInsertable<T> IgnoreColumns(params string[]columns);
IInsertable<T> IgnoreColumns(bool ignoreNullColumn, bool isOffIdentity = false);
IInsertable<T> EnableDiffLogEvent(object businessData = null);
IInsertable<T> RemoveDataCache();
KeyValuePair<string, List<SugarParameter>> ToSql();
void AddQueue();
#region Obsolete
[Obsolete("use IgnoreColumns(string[] columns")]
IInsertable<T> IgnoreColumns(Func<string, bool> ignoreColumMethod);
[Obsolete("use InsertColumns(string[] columns")]
IInsertable<T> InsertColumns(Func<string, bool> insertColumMethod);
[Obsolete("use IgnoreColumns(bool isNoInsertNull, bool isOffIdentity = false)")]
IInsertable<T> Where(bool ignoreNullColumn, bool isOffIdentity = false);
#endregion
}
}