From 9ede2aef7c98dbb82e429951227b6a2a71b0e7bb Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Mon, 21 Apr 2025 23:12:38 +0800 Subject: [PATCH] continue.. --- Examples/base_entity/Program.cs | 2 +- FreeSql.DbContext/FreeSql.DbContext.xml | 8 +++++++ .../SelectProvider/Select0Provider.cs | 24 +------------------ .../SelectProvider/Select0ProviderReader.cs | 6 ++--- 4 files changed, 12 insertions(+), 28 deletions(-) diff --git a/Examples/base_entity/Program.cs b/Examples/base_entity/Program.cs index 7b0f21b2c..165881ce6 100644 --- a/Examples/base_entity/Program.cs +++ b/Examples/base_entity/Program.cs @@ -616,7 +616,7 @@ namespace base_entity //if (cmd.CommandText.StartsWith("")) }) .UseLazyLoading(true) - .UseGenerateCommandParameterWithLambda(true) + //.UseGenerateCommandParameterWithLambda(true) .Build(); BaseEntity.Initialization(fsql, () => _asyncUow.Value); #endregion diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 9721afddf..7cc8aea60 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -764,5 +764,13 @@ + + + 批量注入 Repository,可以参考代码自行调整 + + + + + diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs index 7b4eb8a54..183c18677 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs @@ -374,11 +374,6 @@ namespace FreeSql.Internal.CommonProvider return methods.FirstOrDefault(); }); - internal Select0Provider SetSharedParameters(List parameters) - { - if (parameters != null) _params = parameters; - return this; - } public List> _SameSelectPendingShareData; internal Select0Provider SetSameSelectPendingShareData(List> data) { @@ -414,7 +409,7 @@ namespace FreeSql.Internal.CommonProvider } return false; } - internal static Expression SetSameSelectPendingShareDataWithExpression(Expression exp, List> data, List sharedParams) + internal static Expression SetSameSelectPendingShareDataWithExpression(Expression exp, List> data) { var callExp = exp as MethodCallExpression; var callExpStack = new Stack(); @@ -431,23 +426,6 @@ namespace FreeSql.Internal.CommonProvider return exp; } callExp = callExpStack.Pop(); - //if (callExp.Object.NodeType == ExpressionType.MemberAccess && typeof(ISelect0).IsAssignableFrom(callExp.Object.Type)) - // //callExp = Expression.Call(Expression.Call( - // // Expression.Convert(callExp.Object, typeof(Select0Provider)), - // // typeof(Select0Provider).GetMethod(nameof(SetSharedParameters), BindingFlags.NonPublic | BindingFlags.Instance), - // // Expression.Constant(sharedParams, typeof(List)) - // //), callExp.Method, callExp.Arguments); - // callExp = new ReplaceMemberExpressionVisitor().Replace(callExp, callExp.Object, Expression.Convert(Expression.Call( - // Expression.Convert(callExp.Object, typeof(Select0Provider)), - // typeof(Select0Provider).GetMethod(nameof(SetSharedParameters), BindingFlags.NonPublic | BindingFlags.Instance), - // Expression.Constant(sharedParams, typeof(List))), callExp.Object.Type) - // ) as MethodCallExpression; - //else - // callExp = Expression.Call( - // Expression.Convert(callExp, typeof(Select0Provider)), - // typeof(Select0Provider).GetMethod(nameof(SetSharedParameters), BindingFlags.NonPublic | BindingFlags.Instance), - // Expression.Constant(sharedParams, typeof(List)) - // ); Expression newExp = callExp.Object.NodeType == ExpressionType.MemberAccess && typeof(ISelect0).IsAssignableFrom(callExp.Object.Type) ? new ReplaceMemberExpressionVisitor().Replace(callExp, callExp.Object, Expression.Convert(Expression.Call( Expression.Convert(callExp.Object, typeof(Select0Provider)), diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs index 7230844cf..40befd1e5 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs @@ -942,7 +942,6 @@ namespace FreeSql.Internal.CommonProvider if (ret.Any() == false || otherAfmanys.Any() == false) return ret; var rmev = new ReplaceMemberExpressionVisitor(); - var sharedParams = new List(); for (var a = 0; a < otherAfmanys.Count; a++) { @@ -964,7 +963,7 @@ namespace FreeSql.Internal.CommonProvider newexp = rmev.Replace(newexp, d.Item1, newexpParm); return newexpParm; }).ToArray(); - newexp = SetSameSelectPendingShareDataWithExpression(newexp, sspShareData, sharedParams); + newexp = SetSameSelectPendingShareDataWithExpression(newexp, sspShareData); var newexpFunc = Expression.Lambda(newexp, newexpParms).Compile(); var newexpParamVals = otherAfmanys[a].Select(d => otherAfdic[d.Item1.ToString()].First().Item3.retlist).ToArray(); @@ -1584,7 +1583,6 @@ namespace FreeSql.Internal.CommonProvider if (ret.Any() == false || otherAfmanys.Any() == false) return ret; var rmev = new ReplaceMemberExpressionVisitor(); - var sharedParams = new List(); for (var a = 0; a < otherAfmanys.Count; a++) { @@ -1632,7 +1630,7 @@ namespace FreeSql.Internal.CommonProvider if (asyncMethod != null) newexp = Expression.Call(newexpCallExp.Object, asyncMethod, newexpCallExp.Arguments.Concat(new[] { Expression.Constant(cancellationToken, typeof(CancellationToken)) }).ToArray()); } - newexp = SetSameSelectPendingShareDataWithExpression(newexp, sspShareData, sharedParams); + newexp = SetSameSelectPendingShareDataWithExpression(newexp, sspShareData); var newexpFunc = Expression.Lambda(newexp, newexpParms).Compile(); var newexpParamVals = otherAfmanys[a].Select(d => otherAfdic[d.Item1.ToString()].First().Item3.retlist).ToArray();