This commit is contained in:
sunkaixuan 2017-05-01 14:23:13 +08:00
parent 8ef15c0697
commit f3128e88e0
9 changed files with 21 additions and 11 deletions

View File

@ -22,7 +22,7 @@ namespace OrmTest.PerformanceTesting
DbType = DbType.SqlServer, DbType = DbType.SqlServer,
IsAutoCloseConnection = false IsAutoCloseConnection = false
}); });
db.IgnoreComumns.Add("TestId", "Student"); db.IgnoreColumns.Add("TestId", "Student");
db.Queryable<Student>().Select(it => new ViewModelStudent2 { Name = it.Name, Student = it }).ToList(); db.Queryable<Student>().Select(it => new ViewModelStudent2 { Name = it.Name, Student = it }).ToList();
base.Execute("sqlsuagr", () => base.Execute("sqlsuagr", () =>
{ {

View File

@ -20,7 +20,9 @@ namespace OrmTest.UnitTest
var db = GetInstance(); var db = GetInstance();
var insertObj = new Student() { Name="jack",CreateTime=DateTime.Now }; var insertObj = new Student() { Name="jack",CreateTime=DateTime.Now };
var insertObjs = new List<Student>() { insertObj }.ToArray(); var insertObjs = new List<Student>() { insertObj }.ToArray();
db.IgnoreColumns.Add("TestId", "Student");
db.MappingColumns.Add("id","dbid", "Student");
db.MappingTables.Add("student","dbstudent");
var s1= db.Insertable<Student>(insertObj).ToSql(); var s1= db.Insertable<Student>(insertObj).ToSql();
//Insert reutrn Command Count //Insert reutrn Command Count

View File

@ -37,7 +37,7 @@ namespace OrmTest.UnitTest
#region dr ot entity #region dr ot entity
db.IgnoreComumns.Add("TestId", "Student"); db.IgnoreColumns.Add("TestId", "Student");
var s1 = db.Queryable<Student>().Select(it => new ViewModelStudent2 { Name = it.Name, Student = it }).ToList(); var s1 = db.Queryable<Student>().Select(it => new ViewModelStudent2 { Name = it.Name, Student = it }).ToList();
var s2 = db.Queryable<Student>().Select(it => new { id = it.Id, w = new { x = it } }).ToList(); var s2 = db.Queryable<Student>().Select(it => new { id = it.Id, w = new { x = it } }).ToList();
var s3 = db.Queryable<Student>().Select(it => new { newid = it.Id }).ToList(); var s3 = db.Queryable<Student>().Select(it => new { newid = it.Id }).ToList();

View File

@ -94,7 +94,7 @@ namespace SqlSugar
fileName = mappInfo.DbColumnName; fileName = mappInfo.DbColumnName;
} }
} }
if (Context.IgnoreComumns != null && Context.IgnoreComumns.Any(it => it.EntityPropertyName.Equals(propertyInfo.Name, StringComparison.CurrentCultureIgnoreCase) if (Context.IgnoreColumns != null && Context.IgnoreColumns.Any(it => it.EntityPropertyName.Equals(propertyInfo.Name, StringComparison.CurrentCultureIgnoreCase)
&& it.EntityName.Equals(type.Name, StringComparison.CurrentCultureIgnoreCase))) && it.EntityName.Equals(type.Name, StringComparison.CurrentCultureIgnoreCase)))
{ {
continue; continue;

View File

@ -27,7 +27,7 @@ namespace SqlSugar
return @"INSERT INTO {0} return @"INSERT INTO {0}
({1}) ({1})
VALUES VALUES
({2})"; ({2}) ;SELECT SCOPE_IDENTITY();";
} }
} }

View File

@ -189,7 +189,7 @@ namespace SqlSugar
resolveExpress.JoinQueryInfos = Builder.QueryBuilder.JoinQueryInfos; resolveExpress.JoinQueryInfos = Builder.QueryBuilder.JoinQueryInfos;
resolveExpress.MappingColumns = Context.MappingColumns; resolveExpress.MappingColumns = Context.MappingColumns;
resolveExpress.MappingTables = Context.MappingTables; resolveExpress.MappingTables = Context.MappingTables;
resolveExpress.IgnoreComumnList = Context.IgnoreComumns; resolveExpress.IgnoreComumnList = Context.IgnoreColumns;
resolveExpress.Resolve(expression, resolveType); resolveExpress.Resolve(expression, resolveType);
this.Parameters = new List<SugarParameter>(); this.Parameters = new List<SugarParameter>();
this.Parameters.AddRange(resolveExpress.Parameters); this.Parameters.AddRange(resolveExpress.Parameters);

View File

@ -60,6 +60,8 @@ namespace SqlSugar
public IInsertable<T> Where(bool isInsertNull) public IInsertable<T> Where(bool isInsertNull)
{ {
if (this.InsertBuilder.LambdaExpressions == null)
this.InsertBuilder.LambdaExpressions = InstanceFactory.GetLambdaExpressions(this.Context.CurrentConnectionConfig);
this.InsertBuilder.IsInsertNull = isInsertNull; this.InsertBuilder.IsInsertNull = isInsertNull;
return this; return this;
} }
@ -67,12 +69,19 @@ namespace SqlSugar
#region Private Methods #region Private Methods
private void PreToSql() private void PreToSql()
{ {
if (this.Context.IgnoreColumns != null && this.Context.IgnoreColumns.Any()) {
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 == i.EntityPropertyName);
}).ToList();
}
if (this.IsSingle) if (this.IsSingle)
{ {
foreach (var item in this.InsertBuilder.DbColumnInfoList) foreach (var item in this.InsertBuilder.DbColumnInfoList)
{ {
if (this.InsertBuilder.Parameters == null) this.InsertBuilder.Parameters = new List<SugarParameter>(); if (this.InsertBuilder.Parameters == null) this.InsertBuilder.Parameters = new List<SugarParameter>();
this.InsertBuilder.Parameters.Add(new SugarParameter(this.SqlBuilder.SqlParameterKeyWord+item.ColumnName,item.Value)); this.InsertBuilder.Parameters.Add(new SugarParameter(this.SqlBuilder.SqlParameterKeyWord + item.ColumnName, item.Value));
} }
} }
} }
@ -99,7 +108,7 @@ namespace SqlSugar
Value = column.PropertyInfo.GetValue(item), Value = column.PropertyInfo.GetValue(item),
ColumnName = GetDbColumnName(column.EntityName), ColumnName = GetDbColumnName(column.EntityName),
EntityPropertyName = column.EntityName, EntityPropertyName = column.EntityName,
TableId=i TableId = i
}; };
insertItem.Add(columnInfo); insertItem.Add(columnInfo);
} }

View File

@ -15,7 +15,7 @@ namespace SqlSugar
public Guid ContextID { get; set; } public Guid ContextID { get; set; }
public MappingTableList MappingTables = new MappingTableList(); public MappingTableList MappingTables = new MappingTableList();
public MappingColumnList MappingColumns = new MappingColumnList(); public MappingColumnList MappingColumns = new MappingColumnList();
public IgnoreComumnList IgnoreComumns = new IgnoreComumnList(); public IgnoreComumnList IgnoreColumns = new IgnoreComumnList();
protected ISqlBuilder _SqlBuilder; protected ISqlBuilder _SqlBuilder;
protected EntityProvider _EntityProvider; protected EntityProvider _EntityProvider;

View File

@ -231,15 +231,14 @@ namespace SqlSugar
public virtual IInsertable<T> Insertable<T>(params T[] insertObjs) where T : class, new() public virtual IInsertable<T> Insertable<T>(params T[] insertObjs) where T : class, new()
{ {
var reval = new InsertableProvider<T>(); var reval = new InsertableProvider<T>();
var sqlBuilder = InstanceFactory.GetSqlbuilder(base.CurrentConnectionConfig); ;
reval.Context = this; reval.Context = this;
reval.EntityInfo = this.EntityProvider.GetEntityInfo<T>(); reval.EntityInfo = this.EntityProvider.GetEntityInfo<T>();
var sqlBuilder = InstanceFactory.GetSqlbuilder(base.CurrentConnectionConfig); ;
reval.SqlBuilder = sqlBuilder; reval.SqlBuilder = sqlBuilder;
reval.InsertObjs = insertObjs; reval.InsertObjs = insertObjs;
sqlBuilder.InsertBuilder =reval.InsertBuilder = InstanceFactory.GetInsertBuilder(base.CurrentConnectionConfig); sqlBuilder.InsertBuilder =reval.InsertBuilder = InstanceFactory.GetInsertBuilder(base.CurrentConnectionConfig);
sqlBuilder.InsertBuilder.Builder = sqlBuilder; sqlBuilder.InsertBuilder.Builder = sqlBuilder;
sqlBuilder.Context = reval.SqlBuilder.InsertBuilder.Context = this; sqlBuilder.Context = reval.SqlBuilder.InsertBuilder.Context = this;
sqlBuilder.InsertBuilder.LambdaExpressions = InstanceFactory.GetLambdaExpressions(base.CurrentConnectionConfig);
reval.Init(); reval.Init();
return reval; return reval;
} }