diff --git a/FreeSql.DbContext/DbSet/DbSet.cs b/FreeSql.DbContext/DbSet/DbSet.cs index 6b6f617d..59f5a5cc 100644 --- a/FreeSql.DbContext/DbSet/DbSet.cs +++ b/FreeSql.DbContext/DbSet/DbSet.cs @@ -29,7 +29,7 @@ namespace FreeSql public abstract partial class DbSet : IDbSet where TEntity : class { internal DbContext _db { get; set; } - internal IUnitOfWork _uow { get; set; } + internal virtual IUnitOfWork _uow { get; set; } protected virtual ISelect OrmSelect(object dywhere) { @@ -163,7 +163,7 @@ namespace FreeSql return this; } - Dictionary> _dicDbSetObjects = new Dictionary>(); + internal Dictionary> _dicDbSetObjects = new Dictionary>(); DbSet GetDbSetObject(Type et) { if (_dicDbSetObjects.TryGetValue(et, out var tryds)) return tryds; diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 537315e2..6ca84f12 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -802,3 +802,14 @@ +Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])"> + + 批量注入 Repository,可以参考代码自行调整 + + + + + + + + diff --git a/FreeSql.DbContext/Repository/ContextSet/RepositoryDbSet.cs b/FreeSql.DbContext/Repository/ContextSet/RepositoryDbSet.cs index ad55f84f..1a71db07 100644 --- a/FreeSql.DbContext/Repository/ContextSet/RepositoryDbSet.cs +++ b/FreeSql.DbContext/Repository/ContextSet/RepositoryDbSet.cs @@ -16,6 +16,18 @@ namespace FreeSql _repo = repo; } + IUnitOfWork _uowPriv; + internal override IUnitOfWork _uow + { + get => _uowPriv; + set + { + _uowPriv = value; + foreach (var dbset in _dicDbSetObjects.Values) //配合 UnitOfWorkManager + dbset._uow = _uowPriv; + } + } + protected override ISelect OrmSelect(object dywhere) { var select = base.OrmSelect(dywhere).AsTable(_repo.AsTableSelectValueInternal);