v2.0.0-preview1109 #521 #445

This commit is contained in:
2881099
2020-11-06 14:31:36 +08:00
parent 0de96ef7ec
commit d01cbdd8df
26 changed files with 33 additions and 44 deletions

View File

@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net45;net40</TargetFrameworks>
<Version>2.0.0-preview1108</Version>
<Version>2.0.0-preview1109</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>FreeSql;ncc;YeXiangQin</Authors>
<Description>FreeSql is the ORM in .NetCore, .NetFramework, And Xamarin. It supports Mysql, Postgresql, SqlServer, Oracle, Sqlite, Firebird, Odbc, 达梦, 人大金仓, 神舟通用, 翰高, And Access</Description>

View File

@ -1622,12 +1622,12 @@ namespace FreeSql.Internal
var errorKey = FreeUtil.Sha1($"{(isMultitb ? 1 : 0)},{fl.Where.ToString()}");
if (dicSqlError.ContainsKey(errorKey)) continue;
var visitor = new ReplaceVisitor();
var visitor = new ReplaceParameterVisitor();
try
{
var expExp = Expression.Lambda(
typeof(Func<,>).MakeGenericType(tb.Table.Type, typeof(bool)),
new ReplaceVisitor().Modify(fl.Where, newParameter),
new ReplaceParameterVisitor().Modify(fl.Where, newParameter),
newParameter
);
var whereSql = ExpressionLambdaToSql(expExp.Body, new ExpTSC { _tables =
@ -1652,7 +1652,7 @@ namespace FreeSql.Internal
}
return null;
}
internal class ReplaceVisitor : ExpressionVisitor
public class ReplaceParameterVisitor : ExpressionVisitor
{
private ParameterExpression parameter;
private ParameterExpression oldParameter;
@ -1670,7 +1670,7 @@ namespace FreeSql.Internal
}
}
internal class ReplaceHzyTupleToMultiParam : ExpressionVisitor
public class ReplaceHzyTupleToMultiParam : ExpressionVisitor
{
private List<SelectTableInfo> tables;
private ParameterExpression[] parameters;

View File

@ -72,7 +72,7 @@ namespace FreeSql.Internal
var newParameter = Expression.Parameter(typeof(TEntity), $"gf{_id}");
var newlambda = Expression.Lambda<Func<TEntity, bool>>(
new CommonExpression.ReplaceVisitor().Modify(where, newParameter),
new CommonExpression.ReplaceParameterVisitor().Modify(where, newParameter),
newParameter
);
item.Where = newlambda;