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 //Ignore Name and TestId
var s4=db.Insertable<Student>(insertObj).IgnoreColumns(it => new object[] { it.Name,it.TestId }).ToSql(); 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 //Use Lock
var s5=db.Insertable<Student>(insertObj).With(SqlWith.UpdLock).ToSql(); var s6 =db.Insertable<Student>(insertObj).With(SqlWith.UpdLock).ToSql();
//ToSql //ToSql
var s7= db.Insertable<Student>(insertObj).With(SqlWith.UpdLock) var s7= db.Insertable<Student>(insertObj).With(SqlWith.UpdLock)

View File

@@ -49,8 +49,13 @@ namespace SqlSugar
#region Setting #region Setting
public IInsertable<T> IgnoreColumns(Expression<Func<T, object[]>> columns) public IInsertable<T> IgnoreColumns(Expression<Func<T, object[]>> columns)
{ {
var ignoreColumns = InsertBuilder.GetExpressionValue(columns,ResolveExpressType.Array); var ignoreColumns = InsertBuilder.GetExpressionValue(columns, ResolveExpressType.Array);
this.InsertBuilder.DbColumnInfoList= this.InsertBuilder.DbColumnInfoList.Where(it => !ignoreColumns.Contains(it.EntityPropertyName)).ToList(); 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; return this;
} }
@@ -91,7 +96,8 @@ namespace SqlSugar
}).ToList(); }).ToList();
} }
} }
else { else
{
} }
#endregion #endregion
@@ -102,7 +108,7 @@ namespace SqlSugar
var currentIgnoreColumns = this.Context.IgnoreColumns.Where(it => it.EntityName == this.EntityInfo.Name).ToList(); var currentIgnoreColumns = this.Context.IgnoreColumns.Where(it => it.EntityName == this.EntityInfo.Name).ToList();
this.InsertBuilder.DbColumnInfoList = this.InsertBuilder.DbColumnInfoList.Where(it => 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(); }).ToList();
} }
#endregion #endregion
@@ -151,9 +157,9 @@ namespace SqlSugar
{ {
return entityName; 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()) if (MappingColumnList == null || !MappingColumnList.Any())
{ {
@@ -161,10 +167,12 @@ namespace SqlSugar
} }
else 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; return mappInfo == null ? entityName : mappInfo.DbColumnName;
} }
} }
#endregion #endregion
} }
} }

View File

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