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();