diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 9c6cd88b..743835e4 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -532,5 +532,14 @@ + + + 批量注入 Repository,可以参考代码自行调整 + + + + + + diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs index 4a9a4066..e6020a4a 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs @@ -377,7 +377,9 @@ namespace FreeSql.Internal.CommonProvider if (_tables[0].Table.Primarys.Any() == false) throw new Exception($"ToDelete 功能要求实体类 {_tables[0].Table.CsName} 必须有主键"); var del = _orm.Delete() as DeleteProvider; if (_tables[0].Table.Type != typeof(T1)) del.AsType(_tables[0].Table.Type); - if (_params.Any()) del.GetType().GetField("_params", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(del, new List(_params.ToArray())); + if (_params.Any()) del._params = new List(_params.ToArray()); + if (_whereGlobalFilter.Any()) del._whereGlobalFilter = new List(_whereGlobalFilter.ToArray()); + del.WithConnection(_connection).WithTransaction(_transaction).CommandTimeout(_commandTimeout); switch (_orm.Ado.DataType) { case DataType.Dameng: @@ -403,7 +405,9 @@ namespace FreeSql.Internal.CommonProvider if (_tables[0].Table.Primarys.Any() == false) throw new Exception($"ToUpdate 功能要求实体类 {_tables[0].Table.CsName} 必须有主键"); var upd = _orm.Update() as UpdateProvider; if (_tables[0].Table.Type != typeof(T1)) upd.AsType(_tables[0].Table.Type); - if (_params.Any()) upd.GetType().GetField("_params", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(upd, new List(_params.ToArray())); + if (_params.Any()) upd._params = new List(_params.ToArray()); + if (_whereGlobalFilter.Any()) upd._whereGlobalFilter = new List(_whereGlobalFilter.ToArray()); + upd.WithConnection(_connection).WithTransaction(_transaction).CommandTimeout(_commandTimeout); switch (_orm.Ado.DataType) { case DataType.Dameng: