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,
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();
base.Execute("sqlsuagr", () =>
{

View File

@ -20,7 +20,9 @@ namespace OrmTest.UnitTest
var db = GetInstance();
var insertObj = new Student() { Name="jack",CreateTime=DateTime.Now };
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();
//Insert reutrn Command Count

View File

@ -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<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 s3 = db.Queryable<Student>().Select(it => new { newid = it.Id }).ToList();

View File

@ -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;

View File

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

View File

@ -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<SugarParameter>();
this.Parameters.AddRange(resolveExpress.Parameters);

View File

@ -60,6 +60,8 @@ namespace SqlSugar
public IInsertable<T> 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<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),
ColumnName = GetDbColumnName(column.EntityName),
EntityPropertyName = column.EntityName,
TableId=i
TableId = i
};
insertItem.Add(columnInfo);
}

View File

@ -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;

View File

@ -231,15 +231,14 @@ namespace SqlSugar
public virtual IInsertable<T> Insertable<T>(params T[] insertObjs) where T : class, new()
{
var reval = new InsertableProvider<T>();
var sqlBuilder = InstanceFactory.GetSqlbuilder(base.CurrentConnectionConfig); ;
reval.Context = this;
reval.EntityInfo = this.EntityProvider.GetEntityInfo<T>();
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;
}