Update core

This commit is contained in:
sunkaixuan 2022-04-12 14:53:32 +08:00
parent 58f0a8bc7b
commit 2735463160
4 changed files with 64 additions and 3 deletions

View File

@ -1313,7 +1313,15 @@ namespace SqlSugar
var entity = this.Context.EntityMaintenance.GetEntityInfo<ParameterT>();
var queryableContext = this.Context.TempItems["Queryable_To_Context"] as MapperContext<ParameterT>;
var list = queryableContext.list;
var pkName = (((mappingFiled as LambdaExpression).Body as UnaryExpression).Operand as MemberExpression).Member.Name;
var pkName = "";
if ((mappingFiled as LambdaExpression).Body is UnaryExpression)
{
pkName = (((mappingFiled as LambdaExpression).Body as UnaryExpression).Operand as MemberExpression).Member.Name;
}
else
{
pkName = ((mappingFiled as LambdaExpression).Body as MemberExpression).Member.Name;
}
var key = thisFiled.ToString() +typeof(ParameterT).FullName + typeof(T).FullName;
var ids = list.Select(it => it.GetType().GetProperty(pkName).GetValue(it)).ToArray();
if (queryableContext.TempChildLists == null)
@ -1332,7 +1340,15 @@ namespace SqlSugar
});
queryableContext.TempChildLists[key]= result;
}
var name = (((thisFiled as LambdaExpression).Body as UnaryExpression).Operand as MemberExpression).Member.Name;
var name = "";
if((thisFiled as LambdaExpression).Body is UnaryExpression)
{
name = (((thisFiled as LambdaExpression).Body as UnaryExpression).Operand as MemberExpression).Member.Name;
}
else
{
name = ((thisFiled as LambdaExpression).Body as MemberExpression).Member.Name;
}
var pkValue = parameter.GetType().GetProperty(pkName).GetValue(parameter);
result = result.Where(it => it.GetType().GetProperty(name).GetValue(it).ObjToString() == pkValue.ObjToString()).ToList();
return result;
@ -2817,6 +2833,7 @@ namespace SqlSugar
_Size=it._Size
}).ToList();
}
asyncQueryableBuilder.Includes = this.QueryBuilder.Includes;
asyncQueryableBuilder.Take = this.QueryBuilder.Take;
asyncQueryableBuilder.Skip = this.QueryBuilder.Skip;
asyncQueryableBuilder.SelectValue = this.QueryBuilder.SelectValue;

View File

@ -17,6 +17,19 @@ namespace SqlSugar
public MapperExpressionResolve(Expression expression, InvalidOperationException ex)
{
this.expression = expression;
NavgateExpression navgate = new NavgateExpression();
if (navgate.IsNavgate(expression))
{
navgate.Execute(this);
}
else
{
OldNavgate(expression, ex);
}
}
private void OldNavgate(Expression expression, InvalidOperationException ex)
{
this.ex = ex;
this.mappers = CallContext.MapperExpression.Value;
Error01();

View File

@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace SqlSugar
{
internal class NavgateExpression
{
internal bool IsNavgate(Expression expression)
{
var exp = expression;
if (exp is UnaryExpression)
{
exp = (exp as UnaryExpression).Operand;
}
if (exp is MemberExpression)
{
var memberExp=exp as MemberExpression;
}
return false;
}
internal void Execute(MapperExpressionResolve mapperExpressionResolve)
{
}
}
}

View File

@ -2,7 +2,7 @@
<package >
<metadata>
<id>SqlSugarCore</id>
<version>5.0.6.8-preview01</version>
<version>5.0.6.8-preview02</version>
<authors>sunkaixuan</authors>
<owners>果糖大数据科技</owners>
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0.html</licenseUrl>