This commit is contained in:
sunkaixuan 2017-05-07 23:52:34 +08:00
parent 37647b7054
commit b0b0648e44
3 changed files with 23 additions and 11 deletions

View File

@ -35,8 +35,11 @@ namespace OrmTest.UnitTest
//Ignore Name and TestId
var s4=db.Insertable<Student>(insertObj).IgnoreColumns(it => new object[] { it.Name,it.TestId }).ToSql();
//Ignore Name and TestId
var s5 = db.Insertable<Student>(insertObj).IgnoreColumns(it => it == "Name" || it == "TestId").With(SqlWith.UpdLock).ToSql();
//Use Lock
var s5=db.Insertable<Student>(insertObj).With(SqlWith.UpdLock).ToSql();
var s6 =db.Insertable<Student>(insertObj).With(SqlWith.UpdLock).ToSql();
//ToSql
var s7= db.Insertable<Student>(insertObj).With(SqlWith.UpdLock)

View File

@ -43,14 +43,19 @@ namespace SqlSugar
InsertBuilder.IsReturnIdentity = true;
PreToSql();
return Db.GetInt(InsertBuilder.ToSqlString(), InsertBuilder.Parameters.ToArray());
}
}
#endregion
#region Setting
public IInsertable<T> IgnoreColumns(Expression<Func<T, object[]>> columns)
{
var ignoreColumns = InsertBuilder.GetExpressionValue(columns,ResolveExpressType.Array);
this.InsertBuilder.DbColumnInfoList= this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumns.Contains(it.EntityPropertyName)).ToList();
var ignoreColumns = InsertBuilder.GetExpressionValue(columns, ResolveExpressType.Array);
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumns.Contains(it.EntityPropertyName)).ToList();
return this;
}
public IInsertable<T> IgnoreColumns(Func<string, bool> ignoreColumMethod)
{
this.InsertBuilder.DbColumnInfoList =this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumMethod(it.EntityPropertyName)).ToList();
return this;
}
@ -73,7 +78,7 @@ namespace SqlSugar
this.InsertBuilder.LambdaExpressions = InstanceFactory.GetLambdaExpressions(this.Context.CurrentConnectionConfig);
this.InsertBuilder.IsInsertNull = isInsertNull;
return this;
}
}
#endregion
#region Private Methods
@ -91,7 +96,8 @@ namespace SqlSugar
}).ToList();
}
}
else {
else
{
}
#endregion
@ -102,9 +108,9 @@ namespace SqlSugar
var currentIgnoreColumns = this.Context.IgnoreColumns.Where(it => it.EntityName == this.EntityInfo.Name).ToList();
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it =>
{
return !currentIgnoreColumns.Any(i => it.EntityPropertyName.Equals(i.EntityPropertyName,StringComparison.CurrentCulture));
return !currentIgnoreColumns.Any(i => it.EntityPropertyName.Equals(i.EntityPropertyName, StringComparison.CurrentCulture));
}).ToList();
}
}
#endregion
if (this.IsSingle)
{
@ -151,9 +157,9 @@ namespace SqlSugar
{
return entityName;
}
if (this.Context.MappingColumns.Any(it => it.EntityName.Equals(EntityInfo.Name,StringComparison.CurrentCultureIgnoreCase)))
if (this.Context.MappingColumns.Any(it => it.EntityName.Equals(EntityInfo.Name, StringComparison.CurrentCultureIgnoreCase)))
{
this.MappingColumnList = this.Context.MappingColumns.Where(it => it.EntityName.Equals(EntityInfo.Name,StringComparison.CurrentCultureIgnoreCase)).ToList();
this.MappingColumnList = this.Context.MappingColumns.Where(it => it.EntityName.Equals(EntityInfo.Name, StringComparison.CurrentCultureIgnoreCase)).ToList();
}
if (MappingColumnList == null || !MappingColumnList.Any())
{
@ -161,10 +167,12 @@ namespace SqlSugar
}
else
{
var mappInfo = this.Context.MappingColumns.FirstOrDefault(it => it.EntityPropertyName.Equals(entityName,StringComparison.CurrentCultureIgnoreCase));
var mappInfo = this.Context.MappingColumns.FirstOrDefault(it => it.EntityPropertyName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase));
return mappInfo == null ? entityName : mappInfo.DbColumnName;
}
}
#endregion
}
}

View File

@ -14,6 +14,7 @@ namespace SqlSugar
IInsertable<T> With(string lockString);
IInsertable<T> InsertColumns(Expression<Func<T, object[]>> columns);
IInsertable<T> IgnoreColumns(Expression<Func<T, object[]>> columns);
IInsertable<T> IgnoreColumns(Func<string,bool> ignoreColumMethod);
IInsertable<T> Where(bool isInsertNull);
KeyValuePair<string, List<SugarParameter>> ToSql();
EntityInfo EntityInfo { get; set; }