mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-24 18:04:52 +08:00
Update Core
This commit is contained in:
parent
1abf16f817
commit
0090cb952d
@ -29,7 +29,7 @@ namespace SqlSugar
|
||||
return mappingFields;
|
||||
}
|
||||
|
||||
public List<IConditionalModel> GetMppingSql(List<T> list, List<MappingFieldsExpression> mappingFieldsExpressions)
|
||||
public List<IConditionalModel> GetMppingSql(List<object> list, List<MappingFieldsExpression> mappingFieldsExpressions)
|
||||
{
|
||||
List<IConditionalModel> conditionalModels = new List<IConditionalModel>();
|
||||
foreach (var model in list)
|
||||
@ -141,9 +141,26 @@ namespace SqlSugar
|
||||
{
|
||||
item.LeftEntityColumn = this.NavEntity.Columns.FirstOrDefault(it => it.PropertyName == leftName);
|
||||
}
|
||||
if (item.RightEntityColumn == null)
|
||||
if (item.RightEntityColumn == null && this.Context != null)
|
||||
{
|
||||
item.RightEntityColumn = this.RootEntity.Columns.FirstOrDefault(it => it.PropertyName == rightName);
|
||||
if (item.RightColumnExpression is LambdaExpression)
|
||||
{
|
||||
var body=(item.RightColumnExpression as LambdaExpression).Body;
|
||||
if (body is UnaryExpression)
|
||||
{
|
||||
body = ((UnaryExpression)body).Operand;
|
||||
}
|
||||
if (body is MemberExpression)
|
||||
{
|
||||
var exp=(body as MemberExpression).Expression;
|
||||
if (exp.NodeType == ExpressionType.Parameter)
|
||||
{
|
||||
item.RightEntityColumn =this.Context.EntityMaintenance.GetEntityInfo(exp.Type).Columns.FirstOrDefault(it => it.PropertyName == rightName);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item.RightEntityColumn==null)
|
||||
item.RightEntityColumn = this.RootEntity.Columns.FirstOrDefault(it => it.PropertyName == rightName);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -243,6 +243,7 @@ namespace SqlSugar
|
||||
if (sql.MappingExpressions.HasValue())
|
||||
{
|
||||
MappingFieldsHelper<T> helper = new MappingFieldsHelper<T>();
|
||||
helper.Context = this.Context;
|
||||
helper.NavEntity = bEntityInfo;
|
||||
helper.RootEntity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||
helper.SetChildList(navObjectNameColumnInfo, listItem, ilist.Cast<object>().ToList(), sql.MappingExpressions);
|
||||
@ -319,6 +320,7 @@ namespace SqlSugar
|
||||
{
|
||||
MappingFieldsHelper<T> helper = new MappingFieldsHelper<T>();
|
||||
helper.NavEntity = navEntityInfo;
|
||||
helper.Context = this.Context;
|
||||
helper.RootEntity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||
helper.SetChildList(navObjectNameColumnInfo, item,setValue,sqlObj.MappingExpressions);
|
||||
}
|
||||
@ -350,7 +352,7 @@ namespace SqlSugar
|
||||
helper.Context = this.Context;
|
||||
helper.NavEntity = navEntityInfo;
|
||||
helper.RootEntity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||
var whereSql = helper.GetMppingSql(RootList,sqlObj.MappingExpressions);
|
||||
var whereSql = helper.GetMppingSql(list, sqlObj.MappingExpressions);
|
||||
var navList = selector(this.Context.Queryable<object>().AS(navEntityInfo.DbTableName).AddParameters(sqlObj.Parameters).Where(whereSql,true).WhereIF(sqlObj.WhereString.HasValue(), sqlObj.WhereString).Select(sqlObj.SelectString).OrderByIF(sqlObj.OrderByString.HasValue(), sqlObj.OrderByString));
|
||||
if (navList.HasValue())
|
||||
{
|
||||
|
@ -1448,7 +1448,7 @@ namespace SqlSugar
|
||||
RightEntityColumn=rightEntity.Columns.First(it=>it.PropertyName==ExpressionTool.GetMemberName(mappingFiled2))
|
||||
}
|
||||
};
|
||||
var conditionals=fieldsHelper.GetMppingSql(list, mappings);
|
||||
var conditionals=fieldsHelper.GetMppingSql(list.Cast<object>().ToList(), mappings);
|
||||
if (queryableContext.TempChildLists == null)
|
||||
queryableContext.TempChildLists = new Dictionary<string, object>();
|
||||
if (list != null && queryableContext.TempChildLists.ContainsKey(key))
|
||||
@ -1542,7 +1542,7 @@ namespace SqlSugar
|
||||
RightEntityColumn=rightEntity.Columns.First(it=>it.PropertyName==ExpressionTool.GetMemberName(mappingFiled2))
|
||||
}
|
||||
};
|
||||
var conditionals = fieldsHelper.GetMppingSql(list, mappings);
|
||||
var conditionals = fieldsHelper.GetMppingSql(list.Cast<object>().ToList(), mappings);
|
||||
if (queryableContext.TempChildLists == null)
|
||||
queryableContext.TempChildLists = new Dictionary<string, object>();
|
||||
if (list != null && queryableContext.TempChildLists.ContainsKey(key))
|
||||
|
Loading…
Reference in New Issue
Block a user