diff --git a/OrmTest/PerformanceTesting/SqlSugarPerformance.cs b/OrmTest/PerformanceTesting/SqlSugarPerformance.cs index 5ad6bb3f8..46315c4d1 100644 --- a/OrmTest/PerformanceTesting/SqlSugarPerformance.cs +++ b/OrmTest/PerformanceTesting/SqlSugarPerformance.cs @@ -22,7 +22,7 @@ namespace OrmTest.PerformanceTesting DbType = DbType.SqlServer, IsAutoCloseConnection = false }); - db.IgnoreComumns.Add("TestId", "Student"); + db.IgnoreColumns.Add("TestId", "Student"); db.Queryable().Select(it => new ViewModelStudent2 { Name = it.Name, Student = it }).ToList(); base.Execute("sqlsuagr", () => { diff --git a/OrmTest/UnitTest/Insert.cs b/OrmTest/UnitTest/Insert.cs index d59e362c4..5741154a7 100644 --- a/OrmTest/UnitTest/Insert.cs +++ b/OrmTest/UnitTest/Insert.cs @@ -20,7 +20,9 @@ namespace OrmTest.UnitTest var db = GetInstance(); var insertObj = new Student() { Name="jack",CreateTime=DateTime.Now }; var insertObjs = new List() { insertObj }.ToArray(); - + db.IgnoreColumns.Add("TestId", "Student"); + db.MappingColumns.Add("id","dbid", "Student"); + db.MappingTables.Add("student","dbstudent"); var s1= db.Insertable(insertObj).ToSql(); //Insert reutrn Command Count diff --git a/OrmTest/UnitTest/Query/SelectQuery.cs b/OrmTest/UnitTest/Query/SelectQuery.cs index e8b87b723..b080fee42 100644 --- a/OrmTest/UnitTest/Query/SelectQuery.cs +++ b/OrmTest/UnitTest/Query/SelectQuery.cs @@ -37,7 +37,7 @@ namespace OrmTest.UnitTest #region dr ot entity - db.IgnoreComumns.Add("TestId", "Student"); + db.IgnoreColumns.Add("TestId", "Student"); var s1 = db.Queryable().Select(it => new ViewModelStudent2 { Name = it.Name, Student = it }).ToList(); var s2 = db.Queryable().Select(it => new { id = it.Id, w = new { x = it } }).ToList(); var s3 = db.Queryable().Select(it => new { newid = it.Id }).ToList(); diff --git a/SqlSugar/Abstract/DbProvider/DbBindProvider/IDataReaderEntityBuilder.cs b/SqlSugar/Abstract/DbProvider/DbBindProvider/IDataReaderEntityBuilder.cs index 1328044bc..a75df91c2 100644 --- a/SqlSugar/Abstract/DbProvider/DbBindProvider/IDataReaderEntityBuilder.cs +++ b/SqlSugar/Abstract/DbProvider/DbBindProvider/IDataReaderEntityBuilder.cs @@ -94,7 +94,7 @@ namespace SqlSugar 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))) { continue; diff --git a/SqlSugar/Abstract/DbProvider/SqlBuilderProvider/DMLBuilder/InsertBuilder.cs b/SqlSugar/Abstract/DbProvider/SqlBuilderProvider/DMLBuilder/InsertBuilder.cs index 8f43b22d4..022fdd0e4 100644 --- a/SqlSugar/Abstract/DbProvider/SqlBuilderProvider/DMLBuilder/InsertBuilder.cs +++ b/SqlSugar/Abstract/DbProvider/SqlBuilderProvider/DMLBuilder/InsertBuilder.cs @@ -27,7 +27,7 @@ namespace SqlSugar return @"INSERT INTO {0} ({1}) VALUES - ({2})"; + ({2}) ;SELECT SCOPE_IDENTITY();"; } } diff --git a/SqlSugar/Abstract/DbProvider/SqlBuilderProvider/DMLBuilder/QueryBuilder.cs b/SqlSugar/Abstract/DbProvider/SqlBuilderProvider/DMLBuilder/QueryBuilder.cs index 11cce1d07..4cef63e70 100644 --- a/SqlSugar/Abstract/DbProvider/SqlBuilderProvider/DMLBuilder/QueryBuilder.cs +++ b/SqlSugar/Abstract/DbProvider/SqlBuilderProvider/DMLBuilder/QueryBuilder.cs @@ -189,7 +189,7 @@ namespace SqlSugar resolveExpress.JoinQueryInfos = Builder.QueryBuilder.JoinQueryInfos; resolveExpress.MappingColumns = Context.MappingColumns; resolveExpress.MappingTables = Context.MappingTables; - resolveExpress.IgnoreComumnList = Context.IgnoreComumns; + resolveExpress.IgnoreComumnList = Context.IgnoreColumns; resolveExpress.Resolve(expression, resolveType); this.Parameters = new List(); this.Parameters.AddRange(resolveExpress.Parameters); diff --git a/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs b/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs index 052f7ba78..7dbf1b58a 100644 --- a/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs +++ b/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs @@ -60,6 +60,8 @@ namespace SqlSugar public IInsertable Where(bool isInsertNull) { + if (this.InsertBuilder.LambdaExpressions == null) + this.InsertBuilder.LambdaExpressions = InstanceFactory.GetLambdaExpressions(this.Context.CurrentConnectionConfig); this.InsertBuilder.IsInsertNull = isInsertNull; return this; } @@ -67,12 +69,19 @@ namespace SqlSugar #region Private Methods 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) { foreach (var item in this.InsertBuilder.DbColumnInfoList) { if (this.InsertBuilder.Parameters == null) this.InsertBuilder.Parameters = new List(); - 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), ColumnName = GetDbColumnName(column.EntityName), EntityPropertyName = column.EntityName, - TableId=i + TableId = i }; insertItem.Add(columnInfo); } diff --git a/SqlSugar/SqlSugarAccessory.cs b/SqlSugar/SqlSugarAccessory.cs index 0feb45942..b76583c5c 100644 --- a/SqlSugar/SqlSugarAccessory.cs +++ b/SqlSugar/SqlSugarAccessory.cs @@ -15,7 +15,7 @@ namespace SqlSugar public Guid ContextID { get; set; } public MappingTableList MappingTables = new MappingTableList(); public MappingColumnList MappingColumns = new MappingColumnList(); - public IgnoreComumnList IgnoreComumns = new IgnoreComumnList(); + public IgnoreComumnList IgnoreColumns = new IgnoreComumnList(); protected ISqlBuilder _SqlBuilder; protected EntityProvider _EntityProvider; diff --git a/SqlSugar/SqlSugarClient.cs b/SqlSugar/SqlSugarClient.cs index 9098a28cc..22a4ed8c8 100644 --- a/SqlSugar/SqlSugarClient.cs +++ b/SqlSugar/SqlSugarClient.cs @@ -231,15 +231,14 @@ namespace SqlSugar public virtual IInsertable Insertable(params T[] insertObjs) where T : class, new() { var reval = new InsertableProvider(); + var sqlBuilder = InstanceFactory.GetSqlbuilder(base.CurrentConnectionConfig); ; reval.Context = this; reval.EntityInfo = this.EntityProvider.GetEntityInfo(); - var sqlBuilder = InstanceFactory.GetSqlbuilder(base.CurrentConnectionConfig); ; reval.SqlBuilder = sqlBuilder; reval.InsertObjs = insertObjs; sqlBuilder.InsertBuilder =reval.InsertBuilder = InstanceFactory.GetInsertBuilder(base.CurrentConnectionConfig); sqlBuilder.InsertBuilder.Builder = sqlBuilder; sqlBuilder.Context = reval.SqlBuilder.InsertBuilder.Context = this; - sqlBuilder.InsertBuilder.LambdaExpressions = InstanceFactory.GetLambdaExpressions(base.CurrentConnectionConfig); reval.Init(); return reval; }